Las animaciones de elementos predictivos de RecyclerView no funcionan (APPEARING)

Tengo un RecyclerView con GridLayoutManager (soporte lib v7). Actualizar el adaptador y hacer notifyItemMoved. Si la posición de la fuente del elemento está en la pantalla y la posición de destino está en la pantalla también – "mover la animación" se reproduce. En caso de que el elemento estuviera en la posición fuera de la pantalla (posición 1000, o cualquier otro lejos de la ventana de visualización) y se trasladó a la ventana de visualización, aparecerá con "fade in animation".

Parece que las animaciones de elementos predictivos no funcionan a pesar de que en el hecho de que supportsPredictiveItemAnimations () devuelve true. ¿Estoy haciendo algo mal? ¿Debo anular algunos métodos para habilitarlo?

Yo estaba leyendo el código fuente de RecyclerView, y en javadoc del método dispatchLayout está escrito como:

  • Las vistas de PERSISTENT se mueven ({@link ItemAnimator # animateMove (ViewHolder, int, int, int, int)})
  • Las vistas REMOVED se eliminan ({@link ItemAnimator # animateRemove (ViewHolder)})
  • Se agregan vistas agregadas ({@link ItemAnimator # animateAdd (ViewHolder)})
  • Las vistas DESAPARECIDAS se alejan de la pantalla
  • Las vistas COMPARTIDAS se mueven en la pantalla

Sin embargo, ItemAnimator no distingue ADDED y COMPARTIENDO. ¿Es posible fijar animaciones predictife o por lo menos hacer que la apariencia aparezca como "mover desde fuera de la animación de la pantalla" lefting ADDED animación como es?

Puede intentar anular getExtraLayoutSpace(RecyclerView.State state) de LinearLayoutManager para proporcionar al administrador espacio adicional para animaciones predictivas.

ejemplo:

 @Override protected int getExtraLayoutSpace(RecyclerView.State state) { return getHeight(); // add extra page for better predictive animations } 

El espacio adicional se añadirá al principio o al final dependiendo del delta de desplazamiento anterior de su vista de desplazamiento. Puedes echar un vistazo a la implementación de onLayoutChildren de LinearLayoutManager para más detalles.

  • Android RecyclerView crea y enlaza todas las vistas en el cambio de conjunto de datos
  • Paginación de Firebase android
  • ¿Cómo obtener la vista en RecyclerView.Adapter para Snackbar?
  • Google Map Lite en CardView
  • Custom GridlayoutManager para WRAP_CONTENT en un RecyclerView
  • Cómo refundir elementos en un RecyclerView con el StaggeredGridLayoutManager
  • ¿Cómo crear RecyclerView con múltiples tipos de vista?
  • Android RecyclerView que se encuentra en un fragmento que se encuentra en un ViewPager no vuelve a cargar / refrescar las vistas si se alcanza el setOffscreenPageLimit
  • Botón de acción flotante que no se muestra sobre la vista de reciclaje (que se encuentra dentro de un DrawerLayout)
  • Visualización de imágenes de almacenamiento en base a firebase en un RecyclerView
  • AdView adjunto al fondo no me permite ver el último elemento en Recyclerview
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.