我使用FragmentActivity
,ViewPagerAdapter
和Fragment
来构建标签格式。我的FragmentActivity
中有3个标签。我很困惑,在调用Fragment
方法或调用选项卡的onCreateView
onCreateView方法时是否调用了所有FragmentActivity
onClick
方法?我已为我的所有3 onCreateView
设置了3个断点Fragments
方法。在调试期间,我发现只调用了前2个onCreateView
方法。请解释为什么只有2个被叫?
答案 0 :(得分:1)
ViewPagerAdapter将根据用户需求管理创建片段和销毁片段。因此,如果您未设置 mViewPager.setOffscreenPageLimit(NUM_TABS-1),则默认值为1(您可以参考here)
这就是为什么它只创建前2个选项卡,当你选择tab3时,它会破坏tab1的片段并创建tab3的片段。对于你的情况,如果你在调试时设置 mViewPager.setOffscreenPageLimit(2) ,你会看到它调用3 onCreateView方法,不会破坏任何片段的视图。希望这有帮助。
答案 1 :(得分:0)
根据用户需求创建和销毁它们。如果滚动到第二个片段,您将看到它已创建。这只是一个优化。您是否认为具有例如8个片段的应用程序需要将8个片段保留在内存中?这将浪费资源。