У меня возникли проблемы с сохранением позиции прокрутки списка при изменении данных адаптера.
В настоящее время я создаю пользовательский ArrayAdapter (с переопределенным методом getView) в onCreate
в списке ListFragment и затем назначаю его в свой список:
mListAdapter = new CustomListAdapter(getActivity());
mListAdapter.setNotifyOnChange(false);
setListAdapter(mListAdapter);
Затем, когда я получаю новые данные от загрузчика, который периодически выбирает все, я делаю это в своем обратном вызове onLoadFinished
:
mListAdapter.clear();
mListAdapter.addAll(data.items);
mListAdapter.notifyDataSetChanged();
Проблема заключается в том, что вызов clear()
сбрасывает позицию прокрутки списка. Удаление этого вызова сохраняет позицию, но оно явно оставляет старые элементы в списке.
Каков правильный способ сделать это?