我正在使用一個ArrayList,它包含Fragments。我需要在方向更改期間保存那個數組列表中的碎片。在orientationChange中保存ArrayList <Fragment>
如果arraylist包含自定義類型的對象,比如我自己定義的ArrayList,我可以使「ComplexDatadype」實現Parceable,並將其保存在onSaveInstanceState中。
但是,如何處理包含碎片的數組列表?
我正在使用一個ArrayList,它包含Fragments。我需要在方向更改期間保存那個數組列表中的碎片。在orientationChange中保存ArrayList <Fragment>
如果arraylist包含自定義類型的對象,比如我自己定義的ArrayList,我可以使「ComplexDatadype」實現Parceable,並將其保存在onSaveInstanceState中。
但是,如何處理包含碎片的數組列表?
它們在FragmentPagerAdapter中使用(我正在使用viewpager),但我想知道是否有一種方法可以在不使用任何類型的管理器的情況下保存它們。
如果片段在FragmentManager
中,則FragmentManager
將已經管理它們的狀態。在這種情況下,您不需要保存碎片的狀態 - 您需要保存ArrayList
的狀態,以便您可以通過findFragmentByTag()
或同等方法重建ArrayList
。
如果片段不在FragmentManager
,你將不得不自己發揮這種作用,要求這些片段的實例狀態保存到自己的Fragment.SavedState
,你安排讓那些Fragment.SavedState
實例爲保存整個頂層實例狀態Bundle
。
片段是否由「FragmentManager」管理? IOW,你是否在這些片段上使用了「FragmentTransaction」? – CommonsWare
它們在FragmentPagerAdapter中使用(我正在使用viewpager),但我想知道是否有方法在不使用任何類型的管理器的情況下保存它們。 – deimos1988