3 回答
TA贡献1802条经验 获得超4个赞
的onCreate():
该onCreate()
在的方法Fragment
是后叫Activity
的onAttachFragment()
,但在这之前Fragment
的onCreateView()
。
在此方法中,您可以分配变量,获取Intent
额外内容以及不涉及View层次结构的任何其他内容(即非图形初始化)。这是因为这种方法可以被称为当Activity
的onCreate()
还没有完成,所以想在这里访问View层次结构可能导致崩溃。
onCreateView():
在onCreate()
调用之后(在Fragment
)中,调用Fragment
s onCreateView()
。您可以分配View
变量并执行任何图形初始化。您应该View
从此方法返回一个,这是主UI视图,但如果您Fragment
不使用任何布局或图形,则可以返回null
(默认情况下,如果您不覆盖)。
onActivityCreated():
正如其名国,这是后叫Activity
的onCreate()
完成。它被称为after onCreateView()
,主要用于最终初始化(例如,修改UI元素)。
总而言之......
......他们都被召唤,Fragment
但在不同的时间被召唤。
首先onCreate()
调用,用于执行任何非图形初始化。接下来,您可以分配和声明View
要使用的任何变量onCreateView()
。然后,onActivityCreated()
在完成所有操作后,使用您要执行的任何最终初始化。
如果你想查看官方的Android文档,可以在这里找到:
- - -onCreate()
onCreateView()
onActivityCreated()
Stack Overflow上还有一些略有不同但不太发达的问题/答案:
TA贡献1810条经验 获得超5个赞
需要注意的一点是(至少使用AppCompatActivity),当重新创建活动时(例如,在最小化和被杀死之后),将在完成onCreate()和super.onCreate()活动之前调用onCreate()片段。如果您使用Dagger之类的东西并且需要访问注入的父活动中的某些内容,则可能会出现问题。对此的一个解决方案是将代码放在onActivityCreated()中,调用onCreate()的调用始终被调用。
TA贡献1806条经验 获得超8个赞
在onActivityCreated()之前,活动的onCreate()可能还没有完成?这些是否有可能在onCreateView中崩溃以访问视图层次结构?我不确定onCreateView()/ on onActivityCreated()之间有什么区别
- 3 回答
- 0 关注
- 3853 浏览
添加回答
举报