ListView刷新把它带到列表的顶部



场景:我使用带有自定义适配器的列表视图。我每5秒取一次数据,然后在listview中显示它。

问题:每次刷新后,列表在顶部滚动。我希望从滚动的角度来看,列表保持原样,只是要刷新的底层数据。

当前代码:每次获取新数据时调用。

mListAdapter = new CustomListAdapter(this, mListData);
mList.setAdapter(mListAdapter);

请尝试在每次获取数据时输入以下代码:

adapter.notifyDataSetChanged();

您应该将新数据设置为适配器,然后调用notifyDataSetChanged,而不是调用此方法。

希望这对你有帮助!

当你得到新的mListData时只需使适配器无效而不是重新初始化适配器你可以这样调用

mListAdapter.notifyDataSetChanged();

可以使用

mList.setSelection(mListData.size() - CONSTANT.CONTENT_SIZE);

这样列表视图就不会刷新到顶部。或者也可以使用

adapter.notifydatasetchanged

This Worked For Me:

adapter.setData(list);
adapter.notifyDataSetChanged();

相关内容

最新更新