gpt4 book ai didi

Android:RecyclerView GridLayoutManager - 恢复滚动位置无法正常工作

转载 作者:行者123 更新时间:2023-12-05 00:06:57 25 4
gpt4 key购买 nike

我有 3 个 Activity :A --> B --> C

在 Activity B 中,我使用 RecyclerView 的 GridlayoutManager 进行填充。我想在导航到 Activity C 时保存滚动状态,并在我从 Activity C 返回 Activity B 时恢复滚动状态。

private RecyclerView mImgList;
private GridLayoutManager mRecyclerGridMan;
private final String KEY_RECYCLER_STATE = "recycler_state";
private Parcelable mListState = null;
private static Bundle mBundleRecyclerViewState;

.

@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);
}
}

但是当我从 Activity B 按下后退按钮并转到 Activity A,然后从 Activity A 导航回 Activity B 时,这会起作用。

最佳答案

在 onRestoreInstanceState() 中恢复状态

protected void onRestoreInstanceState(Bundle state) {
super.onRestoreInstanceState(state);

// Retrieve list state and list/item positions
if(state != null)
mListState = mBundleRecyclerViewState.getParcelable(KEY_RECYCLER_STATE);
}

关于Android:RecyclerView GridLayoutManager - 恢复滚动位置无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40583898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com