FragmentPagerAdapter
与设置OffScreenLimit为1的ViewPager和FragmentStatePagerAdapter
有何区别?Google指南中关于
FragmentPagerAdapter
的表述是:这个Pager版本最适合在需要翻页浏览一小部分通常比较静态的片段(例如一组选项卡)时使用。用户访问每个页面的片段将保留在内存中,尽管其视图层次结构可能会在不可见时被销毁。由于片段实例可能持有任意数量的状态,因此这可能导致使用大量的内存。对于更大的页面集,请考虑使用FragmentStatePagerAdapter。而关于
FragmentStatePagerAdapter
,上面的指南提到:这个Pager版本在页面数量较大时更有用,类似于ListView的工作方式。当页面对用户不可见时,它们的整个fragment可以被销毁,仅保存该fragment的已保存状态。这允许Pager保存与访问的每个页面相关联的内存要少得多,相对于FragmentPagerAdapter来说代价是切换页面时可能需要更高的开销。如果我将offscreenlimit设置为1,则会销毁当前片段以外的下一个两个片段之外的所有片段,并且它的行为类似于FragmentStatePagerAdapter。这个理解正确吗?