Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android中是否使用FragmentActivity调用了所有FragmentOnCreateView方法?_Android_Fragment_Android Fragmentactivity - Fatal编程技术网

android中是否使用FragmentActivity调用了所有FragmentOnCreateView方法?

android中是否使用FragmentActivity调用了所有FragmentOnCreateView方法?,android,fragment,android-fragmentactivity,Android,Fragment,Android Fragmentactivity,我使用了FragmentActivity、ViewPagerAdapter和Fragment来构建选项卡格式。myFragmentActivity中有3个选项卡。当调用FragmentActivity方法时,我不知道是调用了所有FragmentonCreateView方法,还是调用了选项卡的onClick?我已经为我的所有3个片段设置了3个断点onCreateView方法。在调试期间,我发现只有前2个onCreateView方法被调用。请解释为什么只调用2个?它们是根据用户需要创建和销毁的。如果

我使用了
FragmentActivity
ViewPagerAdapter
Fragment
来构建选项卡格式。my
FragmentActivity
中有3个选项卡。当调用
FragmentActivity
方法时,我不知道是调用了所有
Fragment
onCreateView
方法,还是调用了选项卡的
onClick
?我已经为我的所有3个
片段设置了3个断点
onCreateView
方法。在调试期间,我发现只有前2个
onCreateView
方法被调用。请解释为什么只调用2个?

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

ViewPagerAdapter将根据用户需要管理创建片段和销毁片段。因此,如果不设置mviewpage.setOffscreenPageLimit(NUM_TABS-1),默认值为1(您可以参考)


这就是为什么它只创建前2个选项卡,当您选择tab3时,它将销毁tab1的片段并创建tab3的片段。对于您的情况,如果您在调试时设置了mviewpage.setOffscreenPageLimit(2),您将看到它调用了3个onCreateView方法,并且不会破坏任何片段的视图。希望这能有所帮助。

我明白。但什么是默认行为。我的前两个片段是在开始时创建的,但不是第三个。当我点击第二个标签时,它会调用第三个片段。这就是我感到困惑的原因。