onCreate(), onCreateView()和onActivityCreated()在片段中的区别和使用

在片段中onCreate()onCreateView()onActivityCreated()之间的区别是什么?它们分别用于什么目的?

173421 次浏览

更新:

onActivityCreated()已从API级别28弃用。


onCreate ():

onCreate()方法在Fragment中是在__ABC2的onAttachFragment()之后调用,但在此之前FragmentonCreateView()
在这个方法中,你可以赋值变量,获取Intent额外值和任何其他不涉及视图层次结构的东西(即非图形化初始化)。这是因为当ActivityonCreate()未完成时可以调用此方法,因此在这里尝试访问View层次结构可能会导致崩溃

onCreateView ():

onCreate()被调用之后(在Fragment中),FragmentonCreateView()被调用。你可以为你的View变量和图形化初始化吗赋值。你需要从这个方法返回一个View,这是主UI视图,但如果你的Fragment不使用任何布局或图形,你可以返回null(如果你不重写,默认发生)。

onActivityCreated ():

顾名思义,这是在__ABC0的onCreate()完成后调用。它在onCreateView()之后被调用,主要用于最终初始化(例如,修改UI元素)。这是来自API级别28的弃用


< p > 总之,……
... 它们都在Fragment中调用,但在不同的时间调用。
onCreate()首先被调用,用于进行任何非图形化初始化。接下来,你可以分配和声明任何你想在onCreateView()中使用的View变量。之后,在所有操作都完成后,使用onActivityCreated()来执行你想要执行的任何最终初始化

如果你想查看官方的Android文档,可以在这里找到:

Stack Overflow上还有一些稍微不同,但不太完善的问题/答案:

如果你想要一个简洁明了的答案:

enter image description here https://hanaskuliah.wordpress.com/2015/12/07/android-5-development-part-6-fragment/ < / em >


而且,

enter image description here

onActivityCreated() -已弃用

onActivityCreated()现在已弃用为Fragments 版本1.3.0-alpha02

onActivityCreated()方法现在已弃用。代码涉及 fragment的视图应该在onViewCreated()中完成 在onActivityCreated())和其他初始化代码之前 应该在onCreate()中。来接收一个回调 activity的onCreate()是完整的,LifeCycleObserver应该是 在onAttach()活动的生命周期上注册,并删除一次 接收到onCreate()回调

详细信息可以找到在这里