【问题标题】:what is the different between onCreate() and onCreateView() lifecycle methods in Fragment?Fragment 中的 onCreate() 和 onCreateView() 生命周期方法有什么区别?
【发布时间】:2015-01-29 10:18:48
【问题描述】:

我不知道什么时候使用onCreate()onCreateView()

我使用过onCreate()onCreateView() 生命周期方法。 我认为onCreate() 用于活动,onCreateView() 用于片段。但我不确定。我可以在 Fragment 中使用onCreate() LifeCycle 方法吗?我希望有人能帮助我!

【问题讨论】:

标签: android android-fragments android-activity fragment oncreate


【解决方案1】:

onCreate 在片段的初始创建时调用。您在这里进行非图形初始化。它甚至在布局膨胀并且片段可见之前就完成了。

onCreateView 被调用来扩展片段的布局,即图形初始化通常发生在这里。它总是在 onCreate 方法之后的某个时间被调用。

【讨论】:

    【解决方案2】:

    来自文档:

    onCreate

    在活动开始时调用。

    这是大多数初始化应该去的地方:调用 setContentView(int) 来膨胀活动的 UI,使用 findViewById(int) 以编程方式与 UI 中的小部件交互,调用 managedQuery(android.net.Uri, String[], String , String[], String) 来检索光标以获取正在显示的数据等。

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

    派生类必须调用该方法的超类实现。否则,将引发异常。

    Link to documentation of onCreate

    onCreateView

    调用以使片段实例化其用户界面视图。这是可选的,非图形片段可以返回 null(这是默认实现)。这将在 onCreate(Bundle) 和 onActivityCreated(Bundle) 之间调用。

    如果你从这里返回一个视图,你稍后会在视图被释放时调用 onDestroyView()。

    Link to documentation of onCreateView

    【讨论】:

    • 这没有回答问题,因为所描述的onCreate() 是针对活动的。原因很简单,因为问题是在询问 Fragment。更何况,Fragment 没有setContentView() 方法。
    【解决方案3】:

    【讨论】:

    • 简单链接不回答问题。例如,在生命周期中没有提及 createView。
    猜你喜欢
    • 2015-05-09
    • 2019-12-12
    • 2021-02-04
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多