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

片段中onCreate(),onCreateView()和onActivityCreated()的区别和用法

什么是之间的差异onCreate()onCreateView()以及onActivityCreated()将它们各自用于片段和什么?



繁花如伊
浏览 3854回答 3
3回答

慕虎7371278

的onCreate():该onCreate()在的方法Fragment是后叫Activity的onAttachFragment(),但在这之前Fragment的onCreateView()。在此方法中,您可以分配变量,获取Intent额外内容以及不涉及View层次结构的任何其他内容(即非图形初始化)。这是因为这种方法可以被称为当Activity的onCreate()还没有完成,所以想在这里访问View层次结构可能导致崩溃。onCreateView():在onCreate()调用之后(在Fragment)中,调用Fragments onCreateView()。您可以分配View变量并执行任何图形初始化。您应该View从此方法返回一个,这是主UI视图,但如果您Fragment不使用任何布局或图形,则可以返回null(默认情况下,如果您不覆盖)。onActivityCreated():正如其名国,这是后叫Activity的onCreate()完成。它被称为after onCreateView(),主要用于最终初始化(例如,修改UI元素)。总而言之............他们都被召唤,Fragment但在不同的时间被召唤。首先onCreate()调用,用于执行任何非图形初始化。接下来,您可以分配和声明View要使用的任何变量onCreateView()。然后,onActivityCreated()在完成所有操作后,使用您要执行的任何最终初始化。如果你想查看官方的Android文档,可以在这里找到:- - -onCreate()onCreateView()onActivityCreated()Stack Overflow上还有一些略有不同但不太发达的问题/答案:onCreate() VS onCreateView()onCreateView() VS onActivityCreated()

森栏

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

慕森卡

在onActivityCreated()之前,活动的onCreate()可能还没有完成?这些是否有可能在onCreateView中崩溃以访问视图层次结构?我不确定onCreateView()/ on onActivityCreated()之间有什么区别
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android