Какие знаешь способы создания и удаления элементов с анимацией в RecyclerView

«Какие знаешь способы создания и удаления элементов с анимацией в RecyclerView» — вопрос из категории UI и Views, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для анимации в RecyclerView можно использовать:

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

Для удаления с анимацией:

adapter.notifyItemRemoved(position)

Важно: для корректной работы анимаций нужно вызывать правильные методы notifyItem* и обновлять данные адаптера до анимации.