为了账号安全,请及时绑定邮箱和手机立即绑定

片段中onCreate(),onCreateView()和onActivityCreated()

片段中onCreate(),onCreateView()和onActivityCreated()

繁花如伊 2019-07-29 10:21:46
片段中onCreate(),onCreateView()和onActivityCreated()的区别和用法什么是之间的差异onCreate(),onCreateView()以及onActivityCreated()将它们各自用于片段和什么?
查看完整描述

3 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

的onCreate():

onCreate()在的方法Fragment后叫ActivityonAttachFragment(),但在这之前FragmentonCreateView()
在此方法中,您可以分配变量,获取Intent额外内容以及不涉及View层次结构的任何其他内容(即非图形初始化)。这是因为这种方法可以被称为当ActivityonCreate()还没有完成,所以想在这里访问View层次结构可能导致崩溃。

onCreateView():

onCreate()调用之后(在Fragment)中,调用FragmentonCreateView()。您可以分配View变量并执行任何图形初始化。您应该View从此方法返回一个,这是主UI视图,但如果您Fragment不使用任何布局或图形,则可以返回null(默认情况下,如果您不覆盖)。

onActivityCreated():

正如其名国,这是后叫ActivityonCreate()完成。它被称为after onCreateView(),主要用于最终初始化(例如,修改UI元素)。


总而言之......
......他们都被召唤,Fragment但在不同的时间被召唤。
首先onCreate()调用,用于执行任何非图形初始化。接下来,您可以分配和声明View要使用的任何变量onCreateView()。然后,onActivityCreated()在完成所有操作后,使用您要执行的任何最终初始化。


如果你想查看官方的Android文档,可以在这里找到:
- - -onCreate()
onCreateView()
onActivityCreated()

Stack Overflow上还有一些略有不同但不太发达的问题/答案:


查看完整回答
反对 回复 2019-07-29
?
森栏

TA贡献1810条经验 获得超5个赞

需要注意的一点是(至少使用AppCompatActivity),当重新创建活动时(例如,在最小化和被杀死之后),将在完成onCreate()和super.onCreate()活动之前调用onCreate()片段。如果您使用Dagger之类的东西并且需要访问注入的父活动中的某些内容,则可能会出现问题。对此的一个解决方案是将代码放在onActivityCreated()中,调用onCreate()的调用始终被调用。

查看完整回答
反对 回复 2019-07-29
?
慕森卡

TA贡献1806条经验 获得超8个赞

在onActivityCreated()之前,活动的onCreate()可能还没有完成?这些是否有可能在onCreateView中崩溃以访问视图层次结构?我不确定onCreateView()/ on onActivityCreated()之间有什么区别

查看完整回答
反对 回复 2019-07-29
  • 3 回答
  • 0 关注
  • 3853 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信