在切换Fragment时,Fragment的生命周期是怎样的?

3

我对片段的生命周期有一定了解,但我发现很难清晰地形象化它的流程图或控制图。例如,当我们从一个片段移动到另一个片段时。

            TheFragment tf6 = new TheFragment(); // TheFragment class extends Fragmet 
            adapter.addFragment(tf6 , naam[q--]);
            tf6.setArguments(args);

            TheFragment tf5 = new TheFragment(); another fragment
            adapter.addFragment(tf5 , naam[q--]);
            tf5.setArguments(args);

           `viewPager.setAdapter(adapter);`

有人能给我解释一下从一个片段移动到另一个片段的控制流或图表吗?也就是哪个片段的哪个方法按照顺序被调用(例如从frag1的OnPouse()到frag2的onResume())感谢您提前的解释。


ViewPager 一次性加载多个 Fragment。 - OneCricketeer
可能是 View pager and fragment lifecycle 的重复问题。 - OneCricketeer
同时,https://dev59.com/rmIj5IYBdhLWcg3wWT6c - OneCricketeer
2个回答

3

您可以通过创建一个片段类并覆盖其所有方法以记录日志来实现。只需导航并查看出现何种日志。


-1

Android片段具有与Android活动非常相似的生命周期。

查看图片

onAttach() 片段实例与活动实例相关联。在此方法中,您可以获取调用片段的活动的引用。

onCreate() 系统在创建片段时调用此方法。

onCreateView() 当片段第一次绘制其用户界面时,系统会调用此回调。

onStart() 一旦片段变得可见,就会调用此方法。

onDestroyView() 调用此方法后,片段视图将被销毁。

请参阅此 教程 以更好地理解生命周期。


这个答案的某些部分是误导性的。onStart()并不一定意味着“片段可见”。为了测试,可以使用FragmenManager.add()将片段添加到堆栈中,然后使用返回按钮弹出,此时不会调用onStart()。 - Farid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接