我有一个垂直RecyclerView
,RecyclerViews
中可以有多个水平view holders
。当我旋转屏幕view holders
为recreated
时,这些水平嵌套回收器视图的所有位置都将丢失。如何保持这些职位?
configChanges
在android清单中不是一个选项。
每个水平回收站视图中的 saveOnInstanceState
都不起作用,因为重新创建了view holder
。
答案 0 :(得分:1)
您可以尝试手动保存/恢复列表状态:
保存:
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);
}
}