【问题标题】:Android Fragment lifecycle when attached in activity's xml附加在活动的 xml 中时的 Android 片段生命周期
【发布时间】:2015-09-27 13:10:24
【问题描述】:

Fragment的onCreate,在Activity XML布局中声明时,onCreateView在Actvity的onCreate之前被调用。

正常吗?我可以根据上面的生命周期开发代码吗?

//Fragment declared in activity xml
<fragment android:name="screenfragments.SearchableFragment"
        android:id="@+id/searchable_fragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

谢谢

【问题讨论】:

    标签: android fragment lifecycle


    【解决方案1】:

    是的,你可以拥有你所拥有的。但请记住,当您在 xml 布局中声明片段时,该片段将始终存在,您无法将其删除或动态替换。

    这有点违背 Fragment 的目的,这些 Fragment 被设计为不与 Activity 绑定的可重用组件。在您提到的情况下,Fragment 与 Activity 相关联。

    总而言之,您使用的设计原则不正常,但它会起作用,您可以围绕它进行设计。

    【讨论】:

      【解决方案2】:

      这种奇怪的生命周期事件顺序是由于您的片段在活动的 XML 中而不是在代码中声明的结果。您可以在 Activity 的 onCreateView 步骤中创建 Fragment 并将其添加到 Activity 中,这样您就可以确保在 Activity 之后调用 Fragment 的 onCreate。

      见:http://developer.android.com/training/basics/fragments/fragment-ui.html#AddAtRuntime

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-21
        • 1970-01-01
        • 2014-07-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多