场景:我正在使用带有自定义适配器的列表视图。我每5秒钟获取一次数据,然后在列表视图中显示它。
问题:每次刷新后,列表都会滚动到顶部。我希望列表保持原样,从滚动的角度来看,只是要刷新的基础数据。
当前代码:每次我获取新数据时都会调用此代码。
mListAdapter = new CustomListAdapter(this, mListData);
mList.setAdapter(mListAdapter);
答案 0 :(得分:1)
您应该将新数据设置为适配器,然后调用notifyDataSetChanged,而不是调用它。
希望这有帮助!
答案 1 :(得分:1)
当您获得新的mListData时,只需使适配器无效而不重新初始化您可以像这样调用的适配器
mListAdapter.notifyDataSetChanged();
答案 2 :(得分:1)
请尝试在每次获取此数据时,而不是代码:
adapter.notifyDataSetChanged();
答案 3 :(得分:0)
您可以使用
mList.setSelection(mListData.size() - CONSTANT.CONTENT_SIZE);
这样,listview不会刷新到顶部。 或者您也可以使用
adapter.notifydatasetchanged
通过更新绑定列表。
答案 4 :(得分:0)
这为我工作:
adapter.setData(list);
adapter.notifyDataSetChanged();