Вам необходимо сохранить позицию прокрутки вашего ListView
и прокрутить список до этой суммы прокрутки снова после обновления списка.
Для этого вызовите этот метод перед adapter.notifyDataSetChanged();
private void saveListScrollPosition() {
// save index and top position
index = _listview.getFirstVisiblePosition();
View view = _listview.getChildAt(0);
top = (view == null) ? 0 : view.getTop();
}
И после adapter.notifyDataSetChanged();
напишите следующую строку -
// restore list scroll position
_listview.setSelectionFromTop(index, top);
, где index
, top
и _listview
- все поля, доступные любомуспособ.