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.
- ¿Cómo puedo cambiar el color de fondo de una fila específica correctamente en un ListView? (Androide)
- ¿Cómo usar el titular de la vista si el contenido personalizado de la fila listview es dinámico?
- Ajustar la posición personalizada checkMark dentro de CheckedTextView
- Cómo crear ListView multinivel en Android
- Android: Seleccionar elementos en un ListView multi-select dentro de AlertDialog
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?
- Android - ¿Cómo puedo medir el rendimiento de ListView y otras vistas?
- Cómo establecer el ancho de divisor ListView?
- Swipeleft para eliminar no funciona en la altura expandible listview
- Desplazar una Galería activa el estado presionado y elimina el escucha de clics de los sub-elementos
- ¿Es posible obtener referencia a ListView de Adapter en Android?
- Espera unitl El acabado smoothScrollToPosition () de ListView
- Android ListView notifyDataSetChanged () de Service
- Cómo crear un estante como ver en Android?
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;