片段中onCreate(),onCreateView()和onActivityCreated()的区别和用法
片段中onCreate()
, onCreateView()
和onActivityCreated()
之间有什么区别,它们各自用于什么?
的onCreate():
Fragment
的onCreate()
方法在Activity
的onAttachFragment()
但在Fragment
的onCreateView()
之前调用 。
在这种方法中,您可以分配variables,获取Intent
extras以及其他不涉及View层次结构的内容 (即非graphics化初始化)。 这是因为这个方法可以在Activity
的onCreate()
没有完成的时候被调用,所以试图在这里访问View层次结构可能会导致崩溃。
onCreateView():
在调用onCreate()
之后(在Fragment
),调用Fragment
的onCreateView()
。 你可以分配你的View
variables,并做任何graphics化初始化 。 你需要从这个方法返回一个View
,这是主UI视图,但是如果你的Fragment
没有使用任何布局或者graphics,你可以返回null
(如果你没有覆盖,默认情况下会发生)。
onActivityCreated():
正如名字所述,这是在Activity
的onCreate()
完成之后调用的 。 它在onCreateView()
之后被调用,主要用于最终的初始化(例如修改UI元素)。
总结一下…
……他们都是在Fragment
被调用,但在不同的时间被调用。
onCreate()
首先被调用,用于执行任何非graphics化的初始化。 接下来,你可以分配和声明你想在onCreateView()
使用的任何View
variables。 之后,使用onActivityCreated()
完成所有事情的最终初始化。
如果你想查看官方的Android文档,可以在这里find:
– onCreate()
– onCreateView()
– onActivityCreated()
这里也有一些稍微不同的,但不太成熟的问题/答案堆栈溢出:
-
onCreate()
vsonCreateView()
-
onCreateView()
vsonActivityCreated()