3

我有一个布局添加片段的活动:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ...
<fragment  ... />
<TextView ... />
<ScrollView ... >
    <RelativeLayout ... >
        <fragment .... />

        <fragment
            android:id="@+id/namesFragment"
            android:name="com.myapp.NamesFragment"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/xxx"
            tools:layout="@layout/fragment_names" />
    </RelativeLayout>
</ScrollView>

在使用带有 API 18 的 genymotion 虚拟设备进行开发后,我在具有较旧 API 的实际设备上遇到了错误。我注意到 that onCreateVeiwis not called before onPrepareOptionsMenu,由于未设置某些变量而导致迷恋。

我已经用两个“常规”AVD 检查了它。一个使用 API 16,另一个使用 API 17。在 API 17onCreateVeiw上会被调用,而在 API 16 上不会被调用。

知道为什么吗?API 17 是否强制某些默认执行路径或以某种方式更改了 Fragment 的生命周期? 当布局创建片段时,知道如何“强制”它吗?

4

0 回答 0