微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

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

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

解决方法

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

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

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

原文地址:https://www.jb51.cc/android/311811.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐