0

次のようなフラグメント トランザクションを実行できます。

Fragment2 frag = new Fragment2();
FragmentTransaction tr = fragmentManager.beginTransaction();
tr.add(R.id.fragment, frag);
tr.addToBackStack();
tr.commit();

このレイアウトを持つアクティビティでは、次のようになります。

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/fragment"
    android:name="com.youhou.fragment1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:layout="@layout/fragment1" />

Fragment1次のように、通常のLinearLayoutand Fragment2tooが含まれている場所:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical">
<ListView
    android:id="@+id/list_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/white" />
</LinearLayout>

Fragment3次のように、もう一度2 番目のトランザクションを実行できます。

Fragment3 frag = new Fragment3();
FragmentTransaction tr = fragmentManager.beginTransaction();
tr.add(R.id.fragment, frag);
tr.addToBackStack();
tr.commit();

そして、うまくいくように見えますが、そうであってはならないことを私は知っています。このまま使うとアプリの安定性が危ないのでしょうか?なぜこのように機能するのか、どのように機能するのか、誰かがこのケースについて説明してくれませんか。

Fragmentを使用して追加/置換する必要があることはわかってFramelayoutいますが、私の場合、これを変更する時間がありません。

4

0 に答える 0