当前位置: 首页 > 知识库问答 >
问题:

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

邵献
2023-03-14

OffScreenLimit设置为1的ViewPager和FragmentStatePagerAdapter之间有什么区别?

关于片段页面适配器谷歌的指南说:

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

关于< code > fragmentstatepageradar :

当有大量页面时,此版本的寻呼机更有用,其工作方式更像列表视图。当用户看不到页面时,其整个片段可能会被销毁,仅保留该片段的保存状态。与 FragmentPagerAdapter 相比,这允许寻呼机保留与每个访问过的页面关联的内存少得多,但代价是在页面之间切换时可能会产生更多的开销。

我想如果我将offScrelimited设置为1,它会破坏当前片段旁边两个片段之外的所有片段,并且它的行为类似于FragmentStatePagerAdapter。这是正确的吗?

共有1个答案

干永丰
2023-03-14

区别就跟文档里写的一模一样。但是可能会有点混乱。

FragmentPagerAdapter将其片段保存在FragmentManager中,当它们不可见时(当它们超过屏幕外限制边界时),并且FragmentStatePagerAdapter将它们从FragmentManager中删除。

屏幕外页面限制略有不同。其中的所有片段都保持附加到 UI。一旦它们过去,它们要么被移除,要么被分离。

您可以在FragmentPagerAdapter(第121行)和FragmentStatePagerAdapter(第144行)的源代码中看到它

 类似资料:
  • 问题内容: 我最好做什么?比写出来要快,但是有什么区别,它们实际上对HTML元素做了什么? 问题答案: 在有关.hide()的jQuery页面中: “匹配的元素将立即被隐藏,没有动画。这大致相当于调用.css(’display’,’none’),除了display属性的值保存在jQuery的数据缓存中,以便以后可以显示恢复为初始值。如果元素的显示值为inline,则该元素将被隐藏并显示,它将再次以

  • 和之间有什么区别? 关于,Google的指南说: 这个版本的分页器最适合在有几个典型的更静态的片段要分页时使用,比如一组选项卡。用户访问的每个页面的片段将保留在内存中,尽管其视图层次结构在不可见时可能会被破坏。这会导致使用大量内存,因为片段实例可以保持任意数量的状态。对于较大的页集,请考虑。 和关于: 这个版本的分页器在有大量页面时更有用,工作起来更像列表视图。当页面对用户不可见时,其整个片段可能

  • 本文向大家介绍exit(0)与exit(1)两者之间的区别,包括了exit(0)与exit(1)两者之间的区别的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将了解exit和exit(1)之间的区别。 exit 它是便携式的。 它告知程序成功终止或完成。 它告知程序执行时终止而没有任何错误。 “ EXIT_SUCCESS”宏用于返回代码0。 可以将“ EXIT_SUCCESS”定义为标准零

  • 问题内容: 在mdn 与…相同 。 但是,实际上它在浏览器中有不同的显示。 您可以通过更改CSS中的注释在jsFiddle中进行尝试。 当我使用元素时,其类名将是,但使用时不会发生。 我不明白为什么。寻求帮助。非常感谢。 问题答案: 该 属性是设置的简写: 该规则应对此进行计算: 这些值在规范中定义。参见7.1.1节。的基本价值 我之所以说 “应该计算” ,是因为在IE11和可能的其他浏览器中,度

  • 在中单击按钮时,必须将该值传递给 我在谷歌上找到了直接放在MainActivity中的片段之间的通信

  • 问题内容: 我的问题是:使用有意义吗?在两个线程(main + oneAnotherThread)中,使用执行程序服务效率高吗?是否通过调用比使用ExecutorService更好地直接创建新线程?在这种情况下使用ExecutorService有什么好处和坏处? PS:主线程和oneAnotherThread不访问任何公共资源。 我经历了:使用ExecutorService有什么优势?。一次只能有