何时在ViewPage2中进行片段准备工作

问题描述 投票:0回答:1

我正在尝试将我的应用程序从旧版ViewPager迁移到ViewPage2。而且我发现,与ViewPager不同,当片段不可见时,ViewPager2不会调用片段的onCreate()或onCreateView。

例如,用户在Fragment [N]上,使用ViewPager时,将在后台创建Fragment [N + 1],我可以在那里做一些准备工作(例如,开始获取数据,解码图像等)。

但是,当我尝试使用ViewPager2示例时,我发现那些片段生命周期回调仅在Fragment [N + 1]对用户可见时才被调用。否则,仅在后台调用片段的构造函数(init方法)。但是我需要初始化的视图对象来进行准备工作。那么,如何解决这个问题呢?或者,如果我做错事,请指出正确的方向。

非常感谢。

android android-viewpager fragment android-viewpager2
1个回答
1
投票

您可以通过调整OffscreenPageLimit来解决某些问题

https://developer.android.com/reference/androidx/viewpager2/widget/ViewPager2#setOffscreenPageLimit(int)

这将对其进行更改,以使Fragments +/- X数变为当前一个的Started状态。

仅将当前显示的片段置于Resumed状态。

由于Viewpager2只是片段的recyclerview,因此已对其进行了优化,以尝试高效并且在真正需要显示它们之前不创建片段。

© www.soinside.com 2019 - 2024. All rights reserved.