我正在使用一个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