En iOS, existe una facilidad muy fácil y potente para animar la adición y eliminación de filas de UITableView, here's a clip from a youtube video que muestra la animación predeterminada. Observe cómo las filas circundantes colapsan en la fila eliminada. Esta animación ayuda a los usuarios a realizar un seguimiento de lo que cambió en una lista y en qué parte de la lista estaban viendo cuando cambiaron los datos.Cómo animar la adición o la eliminación de las filas de ListView de Android
Como he estado desarrollando en Android, no he encontrado una función equivalente para animar filas individuales en un TableView. Llamar al notifyDataSetChanged()
en mi Adaptador hace que ListView actualice inmediatamente su contenido con nueva información. Me gustaría mostrar una animación simple de una nueva fila empujando o deslizándose cuando los datos cambian, pero no puedo encontrar ninguna forma documentada de hacerlo. Parece que LayoutAnimationController podría contener una clave para que funcione, pero cuando configuro LayoutAnimationController en mi ListView (similar a ApiDemo's LayoutAnimation2) y elimino elementos de mi adaptador después de que se muestra la lista, los elementos desaparecen inmediatamente en lugar de animarse.
También he intentado cosas como la siguiente para animar un elemento individual cuando se retira:
@Override
protected void onListItemClick(ListView l, View v, final int position, long id) {
Animation animation = new ScaleAnimation(1, 1, 1, 0);
animation.setDuration(100);
getListView().getChildAt(position).startAnimation(animation);
l.postDelayed(new Runnable() {
public void run() {
mStringList.remove(position);
mAdapter.notifyDataSetChanged();
}
}, 100);
}
Sin embargo, las filas que rodean la fila de animación no se mueven posición hasta que saltan a sus nuevas posiciones cuando se llama notifyDataSetChanged()
. Parece que ListView no actualiza su diseño una vez que se han colocado sus elementos.
Mientras escribía mi propia implementación/fork de ListView se me pasó por la mente, esto parece algo que no debería ser tan difícil.
Gracias!
alguien f ind la respuesta a esto? pls shareee – AndroidGecko
@Alex: has hecho esa animación como ese video de youtube (como iphone), si tienes una demo o un enlace para Android, por favor dame, he intentado usar animateLayoutChanges en un archivo xml, pero no es exactamente como el iphone – Jayesh
@Jayesh, desafortunadamente ya no trabajo en el desarrollo de Android. No he probado ninguna de las respuestas a esta pregunta que fueron escritas después de 2012. –