我有3個活動: 甲 - >乙 - 「ç安卓:RecyclerView GridLayoutManager - 恢復滾動位置不正常工作
在活動B,我使用RecyclerView的GridlayoutManager填充。我要保存的滾動狀態,當我瀏覽到活動C和恢復的滾動狀態時,我從活動C.
private RecyclerView mImgList;
private GridLayoutManager mRecyclerGridMan;
private final String KEY_RECYCLER_STATE = "recycler_state";
private Parcelable mListState = null;
private static Bundle mBundleRecyclerViewState;
回到活動B。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
。
@Override
protected void onPause()
{
super.onPause();
mBundleRecyclerViewState = new Bundle();
mListState = mImgList.getLayoutManager().onSaveInstanceState();
mBundleRecyclerViewState.putParcelable(KEY_RECYCLER_STATE, mListState);
}
。
@Override
protected void onResume()
{
super.onResume();
if (mBundleRecyclerViewState != null) {
mListState = mBundleRecyclerViewState.getParcelable(KEY_RECYCLER_STATE);
mImgList.getLayoutManager().onRestoreInstanceState(mListState);
}
}
但是,當我從活動B按後退按鈕,進入到活動A,並從活動A.導航回活動B
你有沒有檢查過你的'mBundleRecyclerViewState'確實不是'null'? –
@VladMatvienko是的,我檢查了,當我從活動C回到活動B時,mBundleRecyclerViewState不爲空。 –
你回到活動後再次填充你的列表嗎? –