目标:项目中遇到了一个问题,一个 RecyclerView 列表切换到别的位置再切换回来的时候希望自动恢复到原来的位置。
代码如下:
第一步:定义两个成员变量
private int mMusicLastPosition;
private int mMusicLastOffset;
第二步:获取最后位置和偏移量
if (mLinearLayoutManager != null) {
mMusicLastPosition = mLinearLayoutManager.findLastVisibleItemPosition();
mMusicLastOffset = mLinearLayoutManager.findViewByPosition(mMusicLastPosition).getTop();
}
第三步:移动到该位置
if (mLinearLayoutManager != null) {
mLinearLayoutManager.scrollToPositionWithOffset(mMusicLastPosition, mMusicLastOffset);
}