您的位置:首页 > 其它

RecyclerView 记录恢复滚动位置

2017-05-08 16:19 1546 查看
新出的RecyclerView网上的资料比较少,根据ListView以及参考了一下官方API得出。

定义两个成员变量:

private int lastPosition = 0;
private int lastOffset = 0;


记录位置,
OnScrollListener
onScrollStateChanged()
里添加:

View topView = mLayoutManager.getChildAt(0);
//获取可视的第一个view

lastOffset = topView.getTop();
//获取与该view的顶部的偏移量

lastPosition = mLayoutManager.getPosition(topView);
得到该View的数组位置

恢复位置:

mLayoutManager.scrollToPosition(lastPosition);


这样更精确

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