Necesita ayuda para usar getScrollY () de ListView
Tengo el código siguiente que registran la posición de la voluta Y en mi ListView siempre que mi actividad está pausada.
protected void onSaveInstanceState (Bundle outState) { super.onSaveInstanceState(outState); int scroll = mListView.getScrollY(); System.out.println (" scrollY" + scroll); }
Pero independientemente de donde desplazo mi ListView verticalmente, el valor de getScrollY () siempre devuelve 0. ¿Puede alguien por favor ayudarme?
Gracias.
ListView.getScrollY()
devuelve 0, porque no está desplazando el ListView
mismo, sino el View
s dentro de él. Llamar a 'getScrollY ()' en cualquiera de las 'vistas' de las que se desplaza devolverá valores reales (sólo hasta cierto punto, ya que se reciclan).
Para guardar su posición, pruebe lo siguiente:
@Override protected void onSaveInstanceState (Bundle outState) { super.onSaveInstanceState(outState); int scrollPos = mListView.getSelectedItemPosition(); outState.putInt("MyPosition", scrollPos); } @Override public void onRestoreInstanceState(Bundle inState) { super.onRestoreInstanceState(inState); int scrollPos = inState.getInt("MyPosition"); mListView.setSelection(scrollPos); }
¡Buena suerte!