Ответ
Для анимации в RecyclerView можно использовать:
- DefaultItemAnimator - встроенный аниматор, который автоматически анимирует добавление/удаление элементов:
recyclerView.itemAnimator = DefaultItemAnimator()
- DiffUtil - для эффективного обновления данных с анимацией:
val callback = MyDiffCallback(oldList, newList)
val diffResult = DiffUtil.calculateDiff(callback)
diffResult.dispatchUpdatesTo(adapter)
- Custom ItemAnimator - создание собственного аниматора, наследуясь от
RecyclerView.ItemAnimator:
class MyAnimator : SimpleItemAnimator() {
override fun animateRemove(holder: RecyclerView.ViewHolder): Boolean {
// кастомная анимация удаления
return true
}
}
- Библиотеки - например,
recyclerview-animatorsилиItemTouchHelperдля свайпов.
Для удаления с анимацией:
adapter.notifyItemRemoved(position)
Важно: для корректной работы анимаций нужно вызывать правильные методы notifyItem* и обновлять данные адаптера до анимации.