Анимированное население RecyclerView

У меня есть RecyclerView наполненный коллекцией CardView . Мой код по существу является кодом этой официальной статьи и отлично работает, поэтому здесь нет необходимости размещать мой код. Там.

Это выглядит следующим образом:

 +------------------------------+ | +------------+ +------------+ | | | card 1 | | | | | +------------+ +------------+ | | +------------+ +------------+ | | | | | | | | +------------+ +------------+ | | +------------+ +------------+ | | | | | | | | +------------+ +------------+ | | +------------+ +------------+ | | | | | card N | | | +------------+ +------------+ | +-------------------------------+ 

Все карты отображаются одновременно, как и ожидалось.

Но я хочу, чтобы представления отображались один за другим из-за пределов представления до его нормальной позиции.

 +-------------------------------+ +-------------------------------+ | +------------+ | | +------------+ +------------+ | | | card 1 | | | | card 1 | | card 2 | | | +------------+ | | +------------+ +------------+ | | ^ | | | | | | | | | | | | | | | | | | | | | | ^ | | | | | | | | | | | | | | | | | | | | | | | | | +----------------------|--------+ +-------|-----------------------+ ------------+ +------------+ | card 2 | | card 3 | +------------+ +------------+ 

Кто-нибудь знает как это сделать?

Создайте персонализированный элемент аниматора (или расширьте его по умолчанию) и переопределите animateAdd так, чтобы карта отображалась под экраном. Подробнее см. В документации . Несоблюдение этого правила может привести к потере ViewHolders, поэтому вы должны быть осторожны.

Лучший способ запустить анимацию – создать аниматор, который будет анимировать translationY из recyclerView.getHeight() в 0. Вы можете проверить DefaultItemAnimator для ссылок.

Btw, в первом макете, RecyclerView не будет анимировать Views, потому что это выглядит странно, чтобы исчезнуть во всем. Чтобы преодолеть это, сначала сохраните свой адаптер пустым и после первого прохода макета добавьте свои элементы (вы можете использовать обработчик и отложить добавление элементов к вашему адаптеру).

Btw, RecyclerView еще не «поддерживает» анимацию просмотров при прокрутке, поэтому animateAdd не будет вызываться при добавлении новых элементов во время прокрутки списка пользователем.

Вы можете попробовать создать пользовательские ItemAnimators, как в следующем проекте.

https://github.com/gabrielemariotti/RecyclerViewItemAnimators

Intereting Posts
В чем смысл новой аннотации @SystemApi, любая разница от @hide? Android Spinner: центральный текст вертикально внутри прядильника Android, Как вызвать onCreate () явно из другого метода? Android-адаптер синхронизации с приложениями учетных записей пользователей Google Как создать эффект Parallax на странице View Recycler на свитке? Java HttpClient не может анализировать IP-адрес в Android ShouldOverrideUrlLoading в WebView для Android не работает Как я могу получить информацию о столбце, вызвавшем ограничение внешнего ключа в android sqlite? Служба Google Play перестает работать, когда я совершаю покупку с помощью android.test.purchased Как показывать процент загрузки при загрузке изображений в Picasso Биллинг в приложениях Android: пустые данные, полученные после покупки Как остановить бесконечную анимацию в ImageView, но пусть она завершит свой текущий цикл? Отправка SMS на Android Поддержка уровня базовой поддержки Android H.264 Запретить перехватывать ссылки Listview при использовании его Child MapView