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 を持つ実際のデバイスでエラーが発生しました。一部の変数が設定されていないため、クラッシュが発生するonCreateVeiwbefore が呼び出されていないことに気付きました。onPrepareOptionsMenu

2 つの「通常の」AVD で確認しました。1 つは API 16 で、もう 1 つは API 17 です。API 17onCreateVeiwでは呼び出されることが予想されますが、API 16 では呼び出されません。

理由はありますか?API 17 はデフォルトの実行パスを強制したり、フラグメントのライフサイクルを変更したりしましたか? フラグメントがレイアウトによって作成されたときに、それを「強制」する方法はありますか?

4

0 に答える 0