在没有调用onCreate的情况下初始化片段

问题描述 投票:-3回答:3

所以我在一个viewpager里面有一个片段,它包含在一个片段中,如调试器所示,它正在初始化,但没有onCreate,onCreateView或任何这样的方法被调用。包含的活动有一个底部导航视图,包含4个这样的片段,这个问题只发生在1个这样的片段中。

其中的所有这些片段和视图和片段都是在活动的oncreate上创建的。如果我将逻辑移动到创建片段到单击底部选项卡时,此问题就会得到解决。

这怎么可能 ?

android android-fragments android-viewpager android-fragmentactivity
3个回答
1
投票

首次显示viewpager时,仅创建当前活动的片段和两个直接的adjecant片段。所以第一页的片段,如果你“向左滚动”则显示页面的片段,当你“向右滚动”时显示页面的片段。将第4个片段放入下一个adjecant位置时,将创建第4个片段。

所以如果你在一个viewpager中有片段a,b,c,d,比如-a [b] -c-d-,其中b是第一个可见页面,那么在启动时只会创建a,b和c。滚动到c -a-b- [c] -d- onCreate时,将调用片段d。


0
投票

您可以通过在视图寻呼机适配器上设置关闭屏幕页面限制来控制启动活动时预加载的页面/片段数。像这样

  • ViewPager.setOffScreenPageLimit(限制)

如果将limit设置为0,则只加载第一个片段。

https://spotandroid.com/2016/11/23/android-tricks-viewpager-and-offscreen-tabs/

https://techcodegeek.wordpress.com/2015/06/23/android-viewpager-and-performance-improvements/


0
投票

需要更多详细信息才能了解您的问题。您所提供的信息无法理解您所面临的问题。

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