Cómo mantener la posición de la barra de desplazamiento en android listview?

Amigos,

Estoy mostrando una matriz en ListView.

Cambiar los datos de la matriz de forma dinámica en el botón de clic y llamar

adapter.notifyDataSetInvalidated(); 

No mantiene la posición de la barra de desplazamiento de la lista. (La longitud de la fuente de datos a la lista es siempre la misma). ¿Podría alguien guiarme cómo mantener el último estado de ListView?

Cualquier ayuda sería apreciada.

Prueba esto:

 //Get the top position from the first visible element int idx = list.getFirstVisiblePosition(); View vfirst = list.getChildAt(0); int pos = 0; if (vfirst != null) pos = vfirst.getTop(); //Restore the position list.setSelectionFromTop(idx, pos); 

Si sólo desea actualizar algunos cambios en los datos, utilice

 notifyDataSetChanged(); 

En lugar. Y el desplazamiento estará en la misma posición.

  • Usar addView en lugar de un listView
  • ¿Cómo obtener el objeto List View OnTouch?
  • Using setOnItemClickListener para los elementos de listview
  • Parece que no se puede visualizar un ListView y un AdView al mismo tiempo
  • ¿Cómo puedo hacer que mis filas listview tengan diferentes alturas
  • Android ListView: detecta si los datos de ListView se ajustan a la pantalla sin desplazarse
  • ¿Cómo puedo configurar un ListView personalizado con un divisor mediante Android?
  • Disposición personalizada de Android para listview
  • Cómo limitar la selección de casilla de verificación en listview?
  • Android ListView Deslizar hacia la derecha y hacia la izquierda para aceptar y rechazar
  • Android Actualiza ListActivity desde BaseAdapter
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.