我正在使用一个ArrayList,它包含了Fragments。我需要在方向更改期间保存该arraylist中的片段。
如果arraylist包含自定义类型的对象,比如我自己定义的ArrayList,我可以制作" ComplexDatadype"实现Parceable,并将其保存在onSaveInstanceState中。
但是我可以用包含片段的arraylist做什么?
答案 0 :(得分:0)
它们在FragmentPagerAdapter中使用(我正在使用viewpager),但我想知道是否有办法在不使用任何类型的管理器的情况下保存它们。
如果片段位于FragmentManager
,则FragmentManager
将管理其状态。在这种情况下,您不需要保存片段的状态 - 您需要保存ArrayList
的状态,以便您可以通过ArrayList
或findFragmentByTag()
重建FragmentManager
等效。
如果片段不在Fragment.SavedState
中,您必须自己扮演该角色,要求这些片段将其实例状态保存到自己的Fragment.SavedState
,并安排获取这些Bundle
{{1}} 1}}实例进入整个顶级保存的实例状态{{1}}。