有时我们希望从其他界面返回的时候ListView能够恢复到上次查看的位置,解决办法如下:
// 保存当前第一个可见的item的索引和偏移量
int index = mchapterlistView.getFirstVisiblePosition();
View v = mchapterlistView.getChildAt(0);
int top = (v == null) ? 0 : v.getTop();
//根据上次保存的index和偏移量恢复上次的位置
mlistView.setSelectionFromTop(index, top);
这里使用setSelectionFromTop来定位ListView,setSelection方法也可以用于定位,只是setSelectionFromTop更精准。因为得到的item可能已经有一部分是不可见了,如果用selSelection无法反映出不可见的这部分。
本文介绍了一种在Android应用中使ListView返回至先前滚动位置的方法。通过保存和恢复ListView的第一个可见项索引及其顶部偏移量,可以实现更精确的位置定位。
148

被折叠的 条评论
为什么被折叠?



