Я использую RecyclerView
с гетерогенными представлениями внутри, как показано в этом уроке.
У меня есть некоторые элементы внутри RecyclerView, которые тоже являются RecyclerView. Слишком сложно представить? Скажем, я хочу скопировать макет Play Store: один большой RecyclerView с вертикальной линейной компоновкой и заполнен множеством элементов: отдельные приложения и карусель приложений.
Если элемент для добавления - это макет для одного приложения, тогда будет использоваться идентификатор 1, и я добавлю макет для одного элемента. Иначе, если мне нужно добавить карусель, я добавлю один элемент в основной RecyclerView: еще один RecyclerView со своим адаптером.
Это работает очень хорошо. За исключением случаев, когда вы прокручиваете основной RecyclerView. Зачем? Потому что некоторые виды уничтожаются, когда они больше не видны, а затем воссоздаются в методе onBindViewHolder()
. Почему здесь? Поскольку Адаптер основного RecyclerView проходит для позиции X, а затем вызывает onBindViewHolder()
. Затем последний создает новый RecyclerView со своим адаптером и назначает его ему. Я бы хотел сохранить эти взгляды только потому, что они тяжело переустанавливать каждый раз.
Возможно ли это? Если да, можете ли вы сказать мне, как?