您的位置:首页 > 其它

listview记录当前滚动位置和还原位置

2016-07-18 18:38 169 查看
 做到一个需求,一个listview,两个数据源切换.这就需要在切换前保存当前的listview的状态,切换回来的时候,还原状态.找了一下午,发现使用listview.getScrollY(),方法一直获取的值为0.无法保存状态. 这种方法也就行不通了.

最终用以下方式实现了,记录状态(主要记录当前显示的第一个item,和该item的位置):

    int index = listView.getFirstVisiblePosition();
View childAt1 = listView.getChildAt(0);
int diff = childAt1 == null ? 0 : childAt1.getTop();

状态还原,只要一句代码便可实现:

listView.setSelectionFromTop(index, diff);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: