Tengo una ListView
con filas personalizadas. Cuando se hace clic en cualquiera de estas filas, se regeneran los datos de ListView. Me gustaría que la lista volviera a la parte superior cuando esto suceda.
Inicialmente intenté usar setSelection(0)
en cada fila OnClickListener
para lograr esto, pero no tuve éxito (creo que porque ListView
pierde su posición de desplazamiento cuando se invalidan sus datos, por lo que mi llamada a setSelection se deshace. Todavía no entiendo cómo ListView decide dónde desplazarse sin embargo, después de la invalidación).
La única solución de trabajo que conozco fue dada por Romain Guy aquí: http://groups.google.com/group/android-developers/browse_thread/thread/127ca57414035301
Implica ( View.post
) hacer la llamada a _listView.setSelection(0)
. Encontré que esto funcionaba bastante mal. La lista recién generada aparece con su ubicación de desplazamiento sin cambios y hay una demora considerable antes de que vuelva a la parte superior.
¿Existe alguna forma mejor de lograr esta funcionalidad?
Cualquier ayuda será muy apreciada.
¡Gracias!