Android listview notifyDataSetChanged()跳转到底部

时间:2014-09-07 14:22:30

标签: android listview notifydatasetchanged

每次在我的适配器上调用notifyDataSetChanged()时,listview都会显示适配器数组中的最后一项。 是否有任何可能的方法将列表视图滚动到顶部屏幕,因为post runnable中的setSelection(n)方法是显着的,因为listview跳转到底部然后跳到顶部。不幸的是,这个动作可以在屏幕上看到。

提前致谢。

2 个答案:

答案 0 :(得分:0)

我认为这就是你所需要的:

lv.setSelection(0);

答案 1 :(得分:0)

当您致电notifyDataSetChanged()时,您告诉ListView刷新其内容,如果可能,它实际上会尝试不滚动。它根据从适配器获得的项目位置和ID知道当前滚动到的内容。您的问题可能是您的适配器从getItemId发出了混淆ListView的不一致的ID,导致它不必要地滚动。您可以在致电notifyDataSetChanged()时更多地了解您的代码在做什么吗?您是否同时在适配器中添加或删除项目?