我有一个垂直RecyclerView
,可以在view holders
中有多个水平RecyclerViews
。当我旋转屏幕时,view holders
recreated
并且这些水平嵌套回收器视图的所有位置都丢失了。如何保住这些职位?
安卓清单中的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);
}
}