2017-08-07 36 views
1

我有一個垂直RecyclerView,在view holders中可以有多個水平RecyclerViews。當我旋轉屏幕view holdersrecreated並且這些水平嵌套的回收站視圖的所有位置丟失。如何保持這些職位?爲嵌套的回收站視圖保存滾動位置狀態

configChanges在Android清單不是一個選項。

saveOnInstanceState在每個水平回收視圖不起作用,因爲view holder被重新創建。

+0

你可以使用這個庫來保存滾動狀態嵌套RecyclerView github上的.com/vivchar/RendererRecyclerViewAdapter – Vitaly

回答

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