#android #android-recyclerview #gridlayoutmanager #linearlayoutmanager
#Android #android-recyclerview #gridlayoutmanager #linearlayoutmanager
Вопрос:
Я анимирую представления между двумя RecyclerView
. Первый — это что-то вроде списка папок, в котором первый элемент отображается как обложка, щелчок по нему открывает новое представление, показывающее содержимое папок, анимирующее обложку для первого элемента. Нажатие кнопки назад возвращает все видимые виды обратно в папку, из которой они были получены (обложка является самым верхним видом). Это выглядит великолепно, если в открытой папке отображается первый элемент. Если я прокрутю вниз, первый элемент будет за кадром, а анимация задней части больше не будет выглядеть так хорошо, потому что вид обложки не анимирован (в настоящее время я анимирую только все видимые виды).
Я думаю, что сработало бы следующее: LayoutManager
можно было бы поместить первый элемент в позицию за пределами экрана и сохранить его как особый вид в своем пуле, чтобы вы всегда могли получить доступ к первому виду, и когда я возвращаюсь к представлению папки, я могу анимировать обложку в дополнение ко всем другим видимым в данный момент элементы (обложка будет анимирована в верхней части экрана).
Это означает, что мне нужно следующее:
- первый
LayoutManager
элемент должен обрабатываться как специальный, который не перерабатывается (он может понадобиться мне в любое время для обратной анимации) - первый элемент всегда должен быть размещен (либо в позиции по умолчанию в списке, если он виден, либо за кадром прямо над экраном), опять же, потому что он может понадобиться мне в любое время для обратной анимации
Может кто-нибудь помочь мне с чего начать? Я думаю, что это возможно с расширением LayoutManager
, но я не знаю, с чего начать…
Ответ №1:
Вы пробовали следующее?
recView.getRecycledViewPool().setMaxRecycledViews(TYPE_XXXX, 0);