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

时间:2017-08-07 12:37:31

标签: android android-recyclerview

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

configChanges在android清单中不是一个选项。

每个水平回收站视图中的

saveOnInstanceState都不起作用,因为重新创建了view holder

1 个答案:

答案 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);
    }
}