android - programacion - ¿Cómo desplazarse hacia la parte inferior de ListView mediante programación?
manual android studio avanzado (3)
Después de llamar notifydatasetchanged();
Quiero desplazarme al final de la lista para que el usuario vea el último registro en la vista de lista.
(Estoy escribiendo un módulo de chat, por lo que necesito el último registro al final de la lista para que esté visible)
¿Alguien puede guiarme cómo lograr esto?
Sé que es muy tarde para responder, pero puede ser que ayude a alguien. Usar android:transcriptMode="alwaysScroll"
forzará que la vista de lista se desplace hacia abajo (como aquí hemos usado android:stackFromBottom="true"
) incluso si intenta desplazarse hacia arriba, lo que generalmente requiere la mayor parte del tiempo. Entonces en lugar de android:transcriptMode="alwaysScroll
puedes usar android:transcriptMode="normal
que se comportará de manera similar al requisito de la aplicación de chat y no forzará la lista de desplazamiento siempre si el usuario desea ver el contenido en la parte superior.
Sé que esto ha sido respondido y tomaste la respuesta y fue hace más de un año. Pero una mejor forma de hacerlo es el Modo Transcripción. Para obtener una demostración, consulte la demostración de la API de Android en Vistas> Listas> Transcripción.
Usted establecería lo siguiente en su vista de lista en el XML.
android:stackFromBottom="true"
android:transcriptMode="alwaysScroll"
Siempre funcionará cada vez que llame a notifyDataSetChanged()
. Puede configurar android:transcriptMode
a normal
en normal
lugar si desea un resultado aún mejor para las aplicaciones de chat: se desplazará hacia abajo solo si el último elemento ya estaba a la vista. De esta forma, los usuarios pueden ver el chat anterior sin interrupción cuando otros usuarios chatean.
Tratar
listView.post(new Runnable(){
public void run() {
listView.setSelection(listView.getCount() - 1);
}});
La "publicación" parece ser necesaria en algún momento de mi experiencia, especialmente si recientemente ha actualizado la lista.