FragmentPagerAdapter与ViewPager之间的区别与OffScreenLimit设置为1和FragmentStatePagerAdapter?

dow*_*123 9 android android-fragments android-viewpager android-pageradapter

FragmentPagerAdapterViewPager与OffScreenLimit设置为1和FragmentStatePagerAdapter?之间有什么区别?

关于FragmentPagerAdapterGoogle的指南说:

此版本的寻呼机最适合在有少量通常更多静态片段进行分页时使用,例如一组选项卡.用户访问的每个页面的片段将保留在内存中,但其视图层次结构可能在不可见时被销毁.这可能导致使用大量内存,因为片段实例可以保持任意数量的状态.对于较大的页面集,请考虑FragmentStatePagerAdapter.

关于FragmentStatePagerAdapter:

当存在大量页面时,此版本的寻呼机更有用,更像列表视图.当页面对用户不可见时,它们的整个片段可能被破坏,只保留该片段的保存状态.与FragmentPagerAdapter相比,这允许寻呼机保持与每个被访问页面相关联的更少的存储器,代价是在页面之间切换时可能具有更多的开销.

我想如果我将offscreenlimit设置为1,它会破坏当前片段的下两个片段之外的所有片段,并且它的行为类似于FragmentStatePagerAdapter.它是否正确?

sim*_*dam 11

区别与文档中的差异完全相同.但它可能有点令人困惑.

FragmentPagerAdapter将它们的碎片保持FragmentManager在分离状态,同时它们不可见(当它们超出屏幕外限制边界时)并FragmentStatePagerAdapter从中移除它们FragmentManager.

offscreenPageLimit东西有点不同.其中的所有片段都保持与UI的连接.一旦它们结束,它们就会被移除分离.

你可以在FragmentPagerAdapter(第121行)和FragmentStatePagerAdapter(第144 行)的来源中看到它