ListView.getScrollY()
возвращает 0, потому что вы сами не прокручиваете ListView
, а View
внутри. Вызов getScrollY () для любого из представлений, которые вы прокручиваете, возвращает фактические значения (только до некоторой степени, поскольку они перерабатываются).
Чтобы сохранить свою позицию, попробуйте следующее:
@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);
}
Удачи!