一、使用场景
不同业务场景下使用同一个RecycleView,并且各个业务场景下数据也有差异,若想要恢复某个场景下RecycleView最后滑动停留的状态,则可用该方式去实现。
二、常规处理方式
大家第一时间可能会想到记录某个场景下,RecycleView的滑动偏移量或者记录当前停留在哪个position,当需要恢复时通过scrollToPosition(int position)、scrollTo(int x, int y)等方法去滚动到某个具体位置,但是这样处理可能会损失精准度。
三、比较好的处理方式
//获取当前recycleview的滚动状态
Parcelable mParcelable = recycleview.getLayoutManager().onSaveInstanceState();
//加载保存过的滚动状态 记得对mParcelable判空 并且在设置完adapter数据后再调用该方法
recycleview.getLayoutManager().onRestoreInstanceState(mParcelable);