我有一个Activity
,其中包含三个片段,我们称它们为A、B和C。在Activity
的onCreate()
方法中调用Fragment
A。
FragmentA fragA = new FragmentA();
FragmentTransaction transaction = manager.beginTransaction();
transaction.add(R.id.activity2_layout, fragA, "A");
transaction.commit();
当某些按钮被按下并且FragmentTransaction调用了addToBackStack()
时,会将其替换为FragmentB或C。
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,如何防止它自己堆叠?同时我希望这种情况是可能的:B 被调用 > C 被调用 > B 被调用 - 但当我尝试返回时,我希望只打开B一次 (C < B) 而不是 (B < C < B)。因此基本上要用新的BackStack替换第一个BackStack。