android - 何时在 ViewPage2 中进行片段准备工作
问题描述
我正在尝试将我的应用程序从旧版 ViewPager 迁移到 ViewPage2。而且我发现与ViewPager不同的是,ViewPager2不会在fragment不可见的时候调用fragment的onCreate()或者onCreateView。
例如,用户在 Fragment[N] 上,当使用 ViewPager 时,Fragment[N+1] 将在后台创建,我可以在那里做一些准备工作(例如开始获取数据,解码图像等)。
但是,当我尝试 ViewPager2 示例时,我发现只有在 Fragment[N+1] 对用户可见时才会调用这些片段生命周期回调。否则,只会在后台调用片段的构造函数(init 方法)。但是我需要初始化的视图对象来进行准备工作。那么,如何解决这个问题呢?或者如果我以错误的方式做事,请指出正确的方向。
非常感谢。
解决方案
您可以通过调整OffscreenPageLimit
这将改变它以使 Fragments +/- X 数字Started
表示当前数字的任一侧。
只有当前显示的 Fragment 才会进入Resumed
状态。
由于 Viewpager2 只是 Fragments 的回收视图,因此它经过优化以尝试提高效率,并且在真正需要显示 Fragments 之前不创建它们。
推荐阅读
- c - 当 gslcblas 库不在 /usr/local/lib 中时,链接到这些库的正确标志是什么?
- javascript - 通过覆盖查找列表对数组进行排序
- javascript - 渲染不同组件时的钩子顺序错误
- jenkins - 如何根据另一个参数的条件创建可编辑参数?
- hibernate - Grails 中的条件嵌套关联
- python - 从 Sqlite3 输出列表中读取
- typescript - 是否可以构建自定义内在类型?
- postgresql - 计算一个值与 TimescaleDB 中上次读数的变化
- ios - 如何快速将时间字符串转换为 12 小时时间?
- javascript - 如何在反应formik输入字段中为占位符换行?