FragmentStatePagerAdapter和FragmentPagerAdapter

本文介绍了Android开发中ViewPager组件配合Fragment使用的两种适配器:FragmentStatePagerAdapter与FragmentPagerAdapter的区别及应用场景。前者在切换Fragment时会销毁并保存状态,后者仅detach视图但保留对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在我们Android开发中,ViewPager是我们经常使用的一个组件,而这个组件经常和我们的Fragment结合在一起用,以此来完成滑动来显示不同的Fragment。我们要管理这里面的Fragment的切换,可以使用两种Adapter。FragmentStatePagerAdapter和FragmentPagerAdapter,那么这两种方法有什么区别呢?

文/coolma(简书作者)
原文链接:http://www.jianshu.com/p/3d68d6ec9468
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

定义

  • FragmentStatePagerAdapter
    顾名思义,我们的这个FragmentStatePagerAdapter,在我们切换不同的Fragment的时候,我们会把前面的Fragment销毁,而我们系统在销毁前,会把我们的我们Fragment的Bundle在我们的onSaveInstanceState(Bundle)保存下来。等用户切换回来的时候,我们的Fragment就会根据我们的instance state恢复出来。

  • FragmentPagerAdapter
    使用这种Adapter,我们的Fragment在切换的时候,不会销毁,而只是调用事务中的detach方法,这种方法,我们只会把我们的Fragment的view销毁,而保留了以前的Fragment对象。所以通过这种方式创建的Fragment一直不会被销毁。


怎么用?

通过上面,我们就可以很容易得出,我们的FragmentPagerAdapter适用于Fragment比较少的情况,因为我们会把每一个Fragment保存在内存中,不用每次切换的时候,去保存现场,切换回来在重新创建,所以用户体验比较好。而对于我们的Fragment比较多的情况,我们需要切换的时候销毁以前的Fragment以释放内存,就可以使用FragmentStatePagerAdapter。



文/coolma(简书作者)
原文链接:http://www.jianshu.com/p/3d68d6ec9468
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值