什么是之间的差异onCreate()
,onCreateView()
以及onActivityCreated()
将它们各自用于片段和什么?
什么是之间的差异onCreate()
,onCreateView()
以及onActivityCreated()
将它们各自用于片段和什么?
Answers:
onCreate():
该onCreate()
在的方法Fragment
是后叫Activity
的onAttachFragment()
,但在这之前Fragment
的onCreateView()
。
在这种方法中,您可以分配变量,获取Intent
额外内容以及不涉及View层次结构的任何其他内容(即非图形初始化)。这是因为这种方法可以被称为当Activity
的onCreate()
还没有完成,所以想在这里访问View层次结构可能导致崩溃。
onCreateView():
在之后onCreate()
被调用(在Fragment
)的Fragment
的onCreateView()
叫。您可以分配View
变量并进行任何图形初始化。您应该View
从此方法返回a ,这是主要的UI视图,但是如果您Fragment
不使用任何布局或图形,则可以返回null
(默认情况下,如果不覆盖,则会发生)。
onActivityCreated():
正如其名国,这是后叫Activity
的onCreate()
完成。它在after之后被调用onCreateView()
,主要用于最终初始化(例如,修改UI元素)。
总结一下……
它们都在中Fragment
被调用,但是在不同的时间被调用。
首先onCreate()
称为,用于进行任何非图形初始化。接下来,您可以分配和声明View
要在中使用的任何变量onCreateView()
。然后,使用onActivityCreated()
来完成所有想要完成的最终初始化。
如果你想查看官方Android文档,也可以在这里找到:
-
-
-onCreate()
onCreateView()
onActivityCreated()
Stack Overflow上也有一些稍有不同,但尚不完善的问题/答案:
onCreateView
。
对于任何寻求简洁的图示答案的人:
https://hanaskuliah.wordpress.com/2015/12/07/android-5-development-part-6-fragment/
和,
onActivityCreated()
现在不建议使用Fragments Version 1.3.0-alpha02
现在不建议使用onActivityCreated()方法。接触片段视图的代码应在onViewCreated()中完成(在onActivityCreated()之前立即调用),其他初始化代码应在onCreate()中。要专门在活动的onCreate()完成时接收回调,应在onAttach()中的活动生命周期上注册LifeCycleObserver,并在收到onCreate()回调后将其删除。
详细信息可以在这里找到