繁体   English   中英

片段中onCreate()、onCreateView()和onActivityCreated()的区别和使用

[英]Difference and uses of onCreate(), onCreateView() and onActivityCreated() in fragments

片段中的onCreate()onCreateView()onActivityCreated()之间有什么区别,它们各自的用途是什么?

更新:

从 API 级别 28 开始弃用onActivityCreated()


onCreate():

FragmentonCreate()方法在ActivityonAttachFragment()但在FragmentonCreateView()之前调用
在此方法中,您可以分配变量、获取Intent附加项以及任何其他不涉及视图层次结构的内容(即非图形初始化)。 这是因为当ActivityonCreate()未完成时可以调用此方法,因此尝试访问此处的 View 层次结构可能会导致崩溃。

onCreateView():

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

onActivityCreated():

顾名思义,这是ActivityonCreate()完成后调用的 它在onCreateView()之后调用,主要用于最终的初始化(例如,修改 UI 元素)。 这已从 API 级别 28 开始弃用


总结...
...它们都在Fragment被调用,但在不同的时间被调用。
onCreate()首先被调用,用于进行任何非图形初始化。 接下来,您可以分配和声明要在onCreateView()使用的任何View变量。 之后,使用onActivityCreated()来做任何你想在一切都完成后做的最终初始化。


如果你想查看官方的 Android 文档,可以在这里找到:

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

对于任何寻求简洁、图片式答案的人:

在此处输入图片说明 https://hanaskuliah.wordpress.com/2015/12/07/android-5-development-part-6-fragment/


和,

在此处输入图片说明

onActivityCreated() - 已弃用

onActivityCreated()现在作为 Fragments 版本 1.3.0-alpha02被弃用

onActivityCreated() 方法现已弃用。 接触片段视图的代码应该在 onViewCreated()(在 onActivityCreated() 之前立即调用)中完成,其他初始化代码应该在 onCreate() 中。 要在活动的 onCreate() 完成时专门接收回调,应该在 onAttach() 中在活动的生命周期上注册 LifeCycleObserver,并在收到 onCreate() 回调后将其删除。

详细信息可以在这里找到

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM