如何在android listview中保持滚动条位置?

朋友们,

我在ListView中显示一个数组。

我在按钮点击和调用时动态更改数组的数据

adapter.notifyDataSetInvalidated(); 

它不保持列表的滚动条位置。 (列表中数据源的长度始终相同)。 任何人都可以指导我如何保持ListView的最后状态?

任何帮助,将不胜感激。

尝试这个:

 //Get the top position from the first visible element int idx = list.getFirstVisiblePosition(); View vfirst = list.getChildAt(0); int pos = 0; if (vfirst != null) pos = vfirst.getTop(); //Restore the position list.setSelectionFromTop(idx, pos); 

如果您只想刷新数据中的某些更改,请使用

 notifyDataSetChanged(); 

代替。 滚动将处于相同的位置。