我正在尝试将我的应用程序从旧版ViewPager迁移到ViewPage2。而且我发现,与ViewPager不同,当片段不可见时,ViewPager2不会调用片段的onCreate()或onCreateView。
例如,用户在Fragment [N]上,使用ViewPager时,将在后台创建Fragment [N + 1],我可以在那里做一些准备工作(例如,开始获取数据,解码图像等)。
但是,当我尝试使用ViewPager2示例时,我发现那些片段生命周期回调仅在Fragment [N + 1]对用户可见时才被调用。否则,仅在后台调用片段的构造函数(init方法)。但是我需要初始化的视图对象来进行准备工作。那么,如何解决这个问题呢?或者,如果我做错事,请指出正确的方向。
非常感谢。
您可以通过调整OffscreenPageLimit
来解决某些问题
这将对其进行更改,以使Fragments +/- X数变为当前一个的Started
状态。
仅将当前显示的片段置于Resumed
状态。
由于Viewpager2只是片段的recyclerview,因此已对其进行了优化,以尝试高效并且在真正需要显示它们之前不创建片段。