Android: visualización de lista inversa como mensaje

Tengo una pequeña pregunta para mi aplicación de Android. Busqué durante mucho tiempo pero no encontré nada acerca de mi problema.

Escenario : Tengo que mostrar un revertir lista (como Facebook Messenger). Y cuando el usuario se desplace a la parte superior, cargue más mensajes.

Problema : Después de la llamada notifiyDataAsChanged() , el desplazamiento no es el mismo! Quiero conservar exactamente la misma posición que antes de cargar.

He intentado ese código:

 // save index and top position int index = list.getFirstVisiblePosition()+result.size(); View v = list.getChildAt(index); int top = (v == null) ? 0 : v.getTop(); // ... // restore list.setSelectionFromTop(index, top); 

Pero el rollo no es exactamente el mismo después de cargar.

¿Tienes una idea?

Creo que usted debe mirar en el uso de TranscriptMode y StackFromBottom con su listview:

 android:stackFromBottom="true" android:transcriptMode="normal" 

Al establecer el modo de transcripción a la normal, se desplazará a la parte inferior sólo si el último elemento ya estaba en la vista. De esta forma, los usuarios pueden ver los elementos de la vista previa de la lista sin interrupción cuando llama a notifydatasetchanged.

Fijé esto usando el mismo código que usted incluyó pero actualizo la variable del índice por el número de artículos que agrego al adaptador antes de restaurar la posición. Parece funcionar.

hazlo así:

 Collections.reverse(YourList); // ADD THIS LINE TO REVERSE ORDER! YourList.notifyDataSetChanged; 
  • ¿Cómo establecer el menú de contexto específico en función de qué elemento se presiona de largo en un ListActivity?
  • ¿Cómo actualizar ListView en ListFragment de FragmentActivity?
  • Android cómo mostrar 2 listas en una actividad una tras otra
  • Simple coursor adaptador con base de datos SQLite y custmize listview
  • OnItemClickListener con adaptador personalizado y listview
  • Android: Cómo medir la altura total de ListView
  • Ocultar la vista de encabezado en ListView
  • ¿Cómo activar el desplazamiento rápido (pulgar) en el menú desplegable de Android Spinner?
  • Centrado vertical en RelativeLayout anidado dentro de un ListView
  • Cómo implementar Android listview apertura gesto
  • Eliminación de elementos muliple de listview con la casilla de verificación en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.