Activity
3 つの Fragments があり、それらをA、B、およびCと呼びます。Fragment
Aは Activity で呼び出されonCreate()
ます。
FragmentA fragA = new FragmentA();
FragmentTransaction transaction = manager.beginTransaction();
transaction.add(R.id.activity2_layout, fragA, "A");
transaction.commit();
また、特定のボタンが押されたときにフラグメントBまたはCに置き換えられ、FragmentTransaction が呼び出されますaddToBackStack()
。
FragmentB fragB = new FragmentB(); //or C
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.activity2_layout, fragB, "B"); //or C
transaction.addToBackStack("B"); //or C
transaction.commit();
Fragment
しかし、私がBを 3 回続けて呼び出したとしましょう。同時に、これを可能にしたい: Bが呼び出された > Cが呼び出された > Bが呼び出された - しかし、戻ろうとすると、( B < C < B )の代わりにBを 1 回だけ ( C < B )開きたい. したがって、基本的には最初の backStack を新しいもので削除します。