FragmentPagerAdapter 和 FragmentStatePagerAdapter 有什么区别?

2024-06-28

有什么区别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(使用前将#替换为@)

FragmentPagerAdapter 和 FragmentStatePagerAdapter 有什么区别? 的相关文章

随机推荐