2011-01-10 68 views
5

朋友,如何在android listview中保持滚动条的位置?

我在ListView中显示一个数组。

我改变动态按钮点击阵列的数据和呼叫

adapter.notifyDataSetInvalidated(); 

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

任何帮助,将不胜感激。

回答

10

试试这个:

//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); 
+0

请更正代码或者这是不可理解的v在这里?是否像(vfirst!= null) – UMAR 2011-01-10 11:56:43

3

如果您只想刷新数据的一些变化,使用

notifyDataSetChanged(); 

相反。滚动将处于相同的位置。

相关问题