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

FragmentPagerAdapter与ViewPager与OffScreenLimit设置为1和FragmentStatePagerAdapter什么区别?

关于FragmentPagerAdapter Google的指南说:

这个版本的寻呼机最适合用于有less量通常需要寻呼的静态片段,比如一组选项卡。 用户访问的每个页面的片段将保存在内存中,尽pipe其视图层次可能在不可见时被破坏。 这可能会导致使用大量的内存,因为片段实例可以保持任意数量的状态。 对于更大的页面集,请考虑FragmentStatePagerAdapter。

而关于FragmentStatePagerAdapter

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

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

不同的是它是写在文档中。 但它可能有点混乱。

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

offscreenPageLimit是有点不同。 它内的所有片段都保持连接到用户界面。 一旦他们走了,他们要么被删除 ,要么被 分离 。

您可以在FragmentPagerAdapter (第121行)和FragmentStatePagerAdapter (第144行)