在更改它的适配器数据时,我在保留列表视图的滚动位置时遇到了一些麻烦.
我目前正在做的是在onCreateListFragment中创建一个自定义ArrayAdapter(带有重写的getView方法),然后将其分配给它的列表:
mListAdapter = new CustomListAdapter(getActivity());
mListAdapter.setNotifyOnChange(false);
setListAdapter(mListAdapter);
Run Code Online (Sandbox Code Playgroud)
然后,当我从定期获取一切装载机接收新的数据,我这样做是在其onLoadFinished回调:
mListAdapter.clear();
mListAdapter.addAll(data.items);
mListAdapter.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)
问题是,调用clear()重置listview的滚动位置.删除该调用会保留该位置,但它显然会将旧项目留在列表中.
这样做的正确方法是什么?
在android studio 2.1中,来自xml错误的编译时错误消息完全没有帮助:
Error:(11, 41) error: package mypackage.databinding does not exist
Error:(15, 13) error: cannot find symbol class MyActivityBinding
Run Code Online (Sandbox Code Playgroud)
真正的错误通常是"没有这样的属性android:adapter",或"变量foo不包含属性栏"或类似的东西.但是它没有实际显示这样的错误,而是显示了上面那些无用的错误,它们只告诉你由于某些未知错误而没有生成绑定.