【发布时间】:2016-02-18 22:17:19
【问题描述】:
我有一个Activity,其中包含三个片段,我们称它们为 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();
当按下某些按钮时,会被 Fragment 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,我怎样才能防止它自己堆叠呢?同时我希望这成为可能: B 被调用 > C 被调用 > B 被调用 - 但是当我试图回去时,我希望 B 只打开一次 (C B) 而不是 (B C B)。所以基本上用新的 backStack 删除第一个 backStack。
【问题讨论】:
标签: android android-fragments fragment back-stack fragment-backstack