片段中的onCreate()
,onCreateView()
和onActivityCreated()
有什么区别,它们分别用于什么目的?
最佳答案
更新:
apit 28已弃用 onActivityCreated()
。
onCreate():onCreate()
中的Fragment
方法在Activity
的onAttachFragment()
之后但在Fragment
的onCreateView()
之前调用。
在这种方法中,您可以分配变量,获取Intent
附加信息,以及其他不涉及View层次结构的内容(即非图形初始化)。这是因为Activity
的onCreate()
未完成时可以调用此方法,因此在此处尝试访问View层次结构可能会导致崩溃。
onCreateView():
调用onCreate()
(在Fragment
中)之后,将调用Fragment
的onCreateView()
。您可以分配View
变量,可以进行任何图形初始化。您应该从此方法返回View
,这是主UI View ,但是如果Fragment
不使用任何布局或图形,则可以返回null
(默认情况下,如果不覆盖,则会发生)。
onActivityCreated():
顾名思义,这是,在Activity
的onCreate()
完成之后调用。它在onCreateView()
之后调用,主要用于最终初始化(例如,修改UI元素)。这是API级别28中不推荐使用的。
总结起来...
...它们都在Fragment
中被调用,但是在不同的时间被调用。
首先调用onCreate()
,以执行任何非图形初始化。接下来,您可以分配并声明要在View
中使用的任何onCreateView()
变量。之后,一旦一切完成,请使用onActivityCreated()
进行任何最终的初始化。
如果您想查看官方的Android文档,可以在这里找到:onCreate()
onCreateView()
onActivityCreated()
_
在Stack Overflow上,还有一些稍有不同,但尚不完善的问题/答案:onCreate()
vs onCreateView()
onCreateView()
vs onActivityCreated()
关于android - fragment 中onCreate(),onCreateView()和onActivityCreated()的区别和用途,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28929637/