使用ViewPager时如何处理savedInstanceState?

emm*_*mby 12 android android-fragments

我正在android.support.v4.view.ViewPager申请中使用.

当用户旋转屏幕时,活动将被销毁并重新创建.当前活动的片段ViewPager(通常是屏幕上的片段,左侧的片段和右侧的片段)都存储在savedInstanceState.

创建一个新活动,FragmentActivity.onCreate(savedInstanceState)使用片段状态调用,并使用该bundle重新创建这三个片段.但是,我onCreate还设置了ViewPagerViewPager适配器,它们重新创建了自己的片段,从而产生了这三个片段中的每一个片段中的两个片段.

如何将自动重新创建的片段与我ViewPager的适配器相关联,而不是从头开始重新创建它们?

emm*_*mby 18

没关系.看来我使用FragmentPagerAdapter不正确.

正确的使用方法FragmentPagerAdapter是在中实例化您的新片段getItem().我在适配器的构造函数中实例化我的所有片段,将它们存储在一个数组中,然后在数组中查找并返回相应的片段getItem().

如果从中实例化片段getItem(),FragmentPagerAdapter.instantiateItem()则会自动使用循环片段而不是实例化新片段.

  • 您是救生员,谢谢。 (2认同)