保存嵌套回收器视图的滚动位置状态



我有一个垂直RecyclerView,可以在view holders中有多个水平RecyclerViews。当我旋转屏幕时,view holdersrecreated并且这些水平嵌套回收器视图的所有位置都丢失了。如何保住这些职位?

安卓清单中的configChanges不是一种选择。

每个水平回收器视图中的saveOnInstanceState都不起作用,因为view holder是重新创建的。

您可以尝试手动保存/恢复列表状态:

救:

protected void onSaveInstanceState(Bundle state) {
super.onSaveInstanceState(state);
listState = layoutManager.onSaveInstanceState();
bundle.putParcelable(LIST_STATE_KEY, listState);
}

恢复:

protected void onRestoreInstanceState(Bundle bundle) {
super.onRestoreInstanceState(state);
if(bundle != null){
listState = bundle.getParcelable(LIST_STATE_KEY);
layoutManager.onRestoreInstanceState(listState);
}
}

相关内容

  • 没有找到相关文章

最新更新