Tengo un ListView
con filas personalizadas. Cuando se hace clic en cualquiera de estas filas , los datos de ListView se regeneran. Me gustaría que la lista para vuelva a la parte superior cuando esto suceda.Android ListView desplazándose hacia arriba
inicialmente He intentado utilizar setSelection(0)
en la OnClickListener
cada fila para lograr esto, pero no tuvo éxito (creo que debido a que el ListView
pierde su posición de desplazamiento cuando se invalida sus datos -. Por lo que se deshace mi llamada a setSelection todavía don' Sin embargo, entiendo cómo el ListView decide dónde desplazarse después de la invalidación.
La solución única de trabajo que conozco fue dada por Romain tipo aquí: http://groups.google.com/group/android-developers/browse_thread/thread/127ca57414035301
Implica (View.post
) ing la llamada a _listView.setSelection(0)
. I encontró que esto funcionaba bastante mal. La lista recién generada aparece con su ubicación de desplazamiento sin cambios y hay un retraso considerable antes de que se desplace de nuevo a la parte superior.
¿Hay alguna forma mejor de lograr esta funcionalidad?
Cualquier ayuda sería muy apreciada.
Gracias!
Gracias por la sugerencia, voy a intentarlo pronto. La lista se cambia in situ porque las rutas de exploración se muestran en otra parte de la pantalla: los diseños típicos de la interfaz de usuario de Android son menos adecuados para mis objetivos de IU específicos y usuarios objetivo. Además, gracias por TODA su ayuda. He leído varias de sus respuestas de stackoverflow y su literatura de CommonsWare, ¡y me han ayudado significativamente a comenzar en esta plataforma! – aakash
esta es la manera de hacerlo, no hay métodos mágicos, solo lógica pura. ¡Gracias! –