2013-03-12 73 views
0

我已经使用FragmentActivityViewPagerAdapterFragment来构建标签格式。我的FragmentActivity中有3个选项卡。我很困惑,当FragmentActivity方法被调用或者onCreateView方法被调用onClick的选项卡时,是否所有FragmentonCreateView方法都被调用?我已经设置了3个断点onCreateView我所有的3 Fragments的方法。在调试期间,我发现只有前2个onCreateView方法被调用。请解释为什么只有2个被调用?在android中使用FragmentActivity调用所有Fragment onCreateView方法吗?

回答

1

ViewPagerAdapter将根据用户需求来管理创建片段和销毁片段。所以,如果你不设置mViewPager.setOffscreenPageLimit(NUM_TABS-1),默认为1(可以参考here

这就是为什么它仅仅创建第2个选项卡,当您选择TAB3,那么它会破坏tab1的片段并创建tab3的片段。你的情况,如果你设置mViewPager.setOffscreenPageLimit(2)当你调试时,你会看到它调用3 onCreateView方法,并不会销毁任何片段的视图。希望这个帮助。

+0

@MichaelIP你是对的。谢啦。 – ray 2013-03-12 02:58:33

0

根据用户需求创建和销毁它们。如果你滚动到第二个片段,你会看到它被创建。这只是一个优化。你认为一个例如8个片段的应用程序需要将这8个片段保存在内存中吗?这会浪费资源。

+0

雅我明白了。但是默认行为是什么。我的第一个2个片段是在开始时创建的,但不是第3个。当我点击第二个选项卡时,它调用第三个片段。这就是为什么我感到困惑。 – ray 2013-03-12 02:26:19

相关问题