在更改适配器的数据时,我在保留列表视图的滚动位置时遇到了一些麻烦。
我目前正在做的是在onCreate
ListFragment 中创建一个自定义 ArrayAdapter(具有重写的 getView 方法),然后将其分配给它的列表:
mListAdapter = new CustomListAdapter(getActivity());
mListAdapter.setNotifyOnChange(false);
setListAdapter(mListAdapter);
然后,当我从定期获取所有内容的加载程序接收到新数据时,我在其onLoadFinished
回调中执行此操作:
mListAdapter.clear();
mListAdapter.addAll(data.items);
mListAdapter.notifyDataSetChanged();
问题是,调用会clear()
重置列表视图的滚动位置。删除该调用会保留该位置,但显然会将旧项目留在列表中。
这样做的正确方法是什么?