我正在尝试将我的应用程序从传统的ViewPager迁移到ViewPage2。我发现,与ViewPager不同的是,当片段不可见时,ViewPager2不会调用片段的onCreate()或onCreateView。
例如,用户在FragmentN上,当使用ViewPager时,会在后台创建FragmentN+1,我可以在那里做一些准备工作(例如开始获取数据,解码图像等)。
但是,当我尝试ViewPager2示例时,我发现只有当FragmentN+1对用户可见时,才会调用这些片段生命周期回调。否则,只在后台调用片段的构造函数(init方法)。但是我需要初始化的视图对象来做准备工作。那么,如何解决这个问题呢?或者如果我做错了事情,请指出正确的方向。
非常感谢。
发布于 2020-03-23 20:51:44
您可以通过调整OffscreenPageLimit来解决一些问题
这将改变它,使片段+/- X数在当前片段的两侧变为Started状态。
只有当前显示的片段才会进入Resumed状态。
由于Viewpager2只是一个片段的回收视图,它被优化为尝试并高效,并且在真正需要显示它们之前不创建它们。
https://stackoverflow.com/questions/60810528
复制相似问题