android – 使用ViewPager时如何处理savedInstanceState?

我在应用程序中使用 android.support.v4.view.ViewPager.

用户旋转屏幕时,活动被破坏并重新创建. ViewPager中当前处于活动状态的片段(通常是屏幕上的一个,左侧的一个,右侧的片段)都存储在savedInstanceState中.

创建一个新的活动,使用片段状态调用FragmentActivity.onCreate(savedInstanceState),并使用该包重新创建这三个片段.然而,我的onCreate也设置了ViewPager和ViewPager适配器,它们重新创建自己的片段,从而导致这三个片段中的每一个片断.

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

解决方法

没关系.看来我正在使用FragmentPagerAdapter.

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

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

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...