有什么区别FragmentPagerAdapter
and FragmentStatePagerAdapter
?
About FragmentPagerAdapter
谷歌的指南说:
此版本的寻呼机最适合在有少数人的情况下使用
通常需要分页的静态片段较多,例如一组
选项卡。用户访问的每个页面的片段将被保存在
内存,尽管它的视图层次结构在不可见时可能会被破坏。
这可能会导致使用大量内存,因为碎片
实例可以保留任意数量的状态。对于较大的套装
页数,考虑FragmentStatePagerAdapter
.
还有关于FragmentStatePagerAdapter
:
当人数较多时,此版本的寻呼机更有用
页面,更像列表视图。当页面不可见时
用户,他们的整个片段可能会被销毁,只保留
该片段的保存状态。这使得寻呼机可以保留很多内容
与每个访问页面相关的内存更少FragmentPagerAdapter
以潜在的更多开销为代价
页面之间切换。
所以我只有 3 个片段。但它们都是独立的模块,数据量很大。
Fragment1
处理一些数据(用户输入的)并通过活动将其传递到Fragment2
,这只是一个简单的ListFragment
. Fragment3
也是一个ListFragment
.
所以我的问题是: 我应该使用哪个适配器?FragmentPagerAdapter
or FragmentStatePagerAdapter
?
就像文档所说的那样,这样思考。如果您要做一个像读书器这样的应用程序,您将不希望一次将所有片段加载到内存中。您想要加载并销毁Fragments
当用户阅读时。在这种情况下,您将使用FragmentStatePagerAdapter
。如果您只是显示 3 个不包含大量数据的“选项卡”(例如Bitmaps
), then FragmentPagerAdapter
可能很适合你。另外,请记住ViewPager
默认情况下会加载 3 个片段到内存中。首先Adapter
你提到可能会毁掉View
层次结构并在需要时重新加载它,第二个Adapter
只保存状态Fragment
并完全销毁它,如果用户随后返回该页面,则会检索状态。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)