在Fragment中,onCreate()和onCreateView()生命周期方法有什么区别?

51

我不知道何时使用 onCreate()onCreateView()

我已经使用过 onCreate()onCreateView() 生命周期方法。 我认为 onCreate() 适用于Activity,onCreateView() 适用于Fragment。但我不确定。我能在Fragment中使用 onCreate() 生命周期方法吗?希望有人能帮帮我!


2
查看 Android 开发者文档,也许你会找到解决方案。 - Sarthak Mittal
你读过 Fragment 生命周期 吗? - Elltz
3个回答

84

onCreate方法在片段初始创建时调用,用于进行非图形化的初始化。它甚至在布局被填充和片段变为可见之前就已经完成。

onCreateView方法用于填充片段的布局,即通常在这里进行图形化初始化。它始终在onCreate方法之后的某个时间调用。


8

3
简单的链接不能回答问题。例如,在生命周期中没有提到createView。 - Alberto M

0

从文档中:

onCreate

当活动开始时调用。

这是大多数初始化应该进行的地方:调用setContentView(int)来填充活动的UI,使用findViewById(int)与UI中的小部件进行编程交互,调用managedQuery(android.net.Uri, String[], String, String[], String)来检索用于显示数据的游标等。

您可以在此函数内部调用finish(),在这种情况下,onDestroy()将立即被调用,而不执行活动生命周期的其余部分(onStart()、onResume()、onPause()等)。

派生类必须调用超类的此方法的实现。如果他们没有这样做,就会抛出异常。

onCreate文档链接

onCreateView

该方法用于创建Fragment的用户界面视图。这是可选的,非图形化的Fragment可以返回null(这是默认实现)。该方法将在onCreate(Bundle)和onActivityCreated(Bundle)之间被调用。

如果您从此处返回一个View,则在释放视图时将在onDestroyView()中再次调用该方法。

onCreateView文档链接


12
这不回答问题,因为onCreate()所描述的是Activity。原因很简单,问题问的是Fragment。更不用说,Fragment没有setContentView()方法。 - Wei

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接