我在应用程序中使用android.support.v4.view.ViewPager
。
当用户旋转屏幕时,活动将被销毁并重新创建。 ViewPager
中当前活动的片段(通常是屏幕上的片段,左侧的片段和右侧的片段)都存储在savedInstanceState
中。
创建一个新活动,使用片段状态调用FragmentActivity.onCreate(savedInstanceState)
,并使用该包重新创建这三个片段。但是,我的onCreate
也会设置ViewPager
和ViewPager
适配器,它们会重新创建自己的片段,从而导致这三个片段中的每一个都有两个。
如何将自动重新创建的片段与我的ViewPager
适配器相关联,而不是从头开始重新创建?
答案 0 :(得分:18)
没关系。我似乎错误地使用了FragmentPagerAdapter
。
使用FragmentPagerAdapter
的正确方法是在getItem()
中实例化新片段。我在适配器的构造函数中实例化我的所有片段,将它们存储在一个数组中,然后在数组中查找它们并在getItem()
中返回相应的片段。
如果您从getItem()
实例化您的片段,那么FragmentPagerAdapter.instantiateItem()
将自动使用循环片段而不是实例化新片段。