RecyclerView 记录恢复滚动位置

来源:互联网 发布:mac怎么升级 编辑:程序博客网 时间:2024/06/05 13:34

新出的RecyclerView网上的资料比较少,根据ListView以及参考了一下官方API得出。

定义两个成员变量:

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

记录位置,OnScrollListeneronScrollStateChanged()里添加:
View topView = mLayoutManager.getChildAt(0); //获取可视的第一个view
lastOffset = topView.getTop(); //获取与该view的顶部的偏移量
lastPosition = mLayoutManager.getPosition(topView); 得到该View的数组位置

恢复位置:

mLayoutManager.scrollToPosition(lastPosition);

这样更精确

    ((LinearLayoutManager)mLayoutManager).scrollToPositionWithOffset(lastPosition, lastOffset);
1 0
原创粉丝点击