每次在我的适配器上调用notifyDataSetChanged()时,listview都会显示适配器数组中的最后一项。 是否有任何可能的方法将列表视图滚动到顶部屏幕,因为post runnable中的setSelection(n)方法是显着的,因为listview跳转到底部然后跳到顶部。不幸的是,这个动作可以在屏幕上看到。
提前致谢。
答案 0 :(得分:0)
我认为这就是你所需要的:
lv.setSelection(0);
答案 1 :(得分:0)
当您致电notifyDataSetChanged()
时,您告诉ListView刷新其内容,如果可能,它实际上会尝试不滚动。它根据从适配器获得的项目位置和ID知道当前滚动到的内容。您的问题可能是您的适配器从getItemId
发出了混淆ListView的不一致的ID,导致它不必要地滚动。您可以在致电notifyDataSetChanged()
时更多地了解您的代码在做什么吗?您是否同时在适配器中添加或删除项目?