RecyclerView animation de elementos, se llama AnimationFinished, pero no está activado en AnimationStarted. ¿Por qué?

myRecyclerView con itemAnimator como a continuación (en Kotlin), para poder escuchar los events de inicio y fin de la animation.

  myRecyclerView.itemAnimator = object : DefaultItemAnimator() { override fun onAnimationFinished(viewHolder: RecyclerView.ViewHolder?) { Log.d("Testing", "I am finished") } override fun onAnimationStarted(viewHolder: RecyclerView.ViewHolder?) { Log.d("Testing", "I am started") } } 

Yo uso DiffUtil para enviar cambios. La animation funciona bien Pero solo se onAnimationFinished callback onAnimationFinished , no onAnimationStarted . ¿Yo me perdí algo?

ItemAnimator#onAnimationStarted y ItemAnimator#onAnimationFinished son llamados por ItemAnimator#dispatchAnimationStarted y ItemAnimator#dispatchAnimationFinished respectivamente.

Del documento de ItemAnimator#dispatchAnimationStarted :

Método para ser llamado por subclasss cuando se inicia una animation.

Después de ver el código fuente de la subclass SimpleItemAnimator y su subclass DefaultItemAnimator , hallé que ItemAnimator#dispatchAnimationStarted no se ha llamado a ninguna parte en ninguna de las subclasss. Sin embargo, se ha invocado ItemAnimator#dispatchAnimationFinished desde las subclasss.

Y es por eso que no recibió ninguna callback para su implementación onAnimationStarted .

Sin embargo, no estoy seguro de si esto se dejó intencionalmente o un error en el marco y no pude encontrar ningún recurso al respecto.

  • Extensión de Kotlin no reconocida en el adaptador
  • Android solo estableceStackFromEnd solo si RecycleView / List es más grande que la pantalla
  • RecyclerView.ViewHolder no se vincula correctamente
  • Android Recycler View Horizontal Desplácese hasta el último elemento y muestre el primer elemento
  • Cómo proteger el oyente de desplazamiento sin fin de un reciclador
  • ¿Cómo uso un onItemLongClickListener en mi actividad en Android?
  • Recyclerview: escucha los events de clic de relleno
  • Android - Kotlin: el object debe declararse abstracto o implementar miembro abstracto
  • Haga que los niños de RecyclerView coincidan con la altura de los padres cuando usan el constructor en lugar de inflar para crearlos
  • La animation SwipeRefreshLayout del primer bash de actualización se ejecuta sin parar
  • ¿Por qué onclick en los ítems de RecyclerView se devuelve una identificación de artículo incorrecta?