Android 附加在 activity 的 xml 中时的片段生命周期

Android Fragment lifecycle when attached in activity's xml

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

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

//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" />

谢谢

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

这有点违背片段的目的,片段被设计为可重用的组件,不依赖于 Activity。在您提到的情况下,片段绑定到 Activity.

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

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

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