ListView刷新将其置于列表顶部

时间:2011-12-19 14:55:22

标签: android android-listview

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

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

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

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

5 个答案:

答案 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();