我在使用 Android 片段时遇到了很多麻烦......假设我的后台堆栈看起来像这样
[C]
[B]
[A]
---
按下后退按钮会弹出Fragment C
,并留Fragment B
在堆栈的顶部。现在,我如何在保持后堆栈Fragment C
的同时进行交换?Fragment D
注意,Fragment B
在操作过程中是看不到的。
[C] <- [D] [D]
[B] -----> [B]
[A] [A]
--- ---
这样,按下后退按钮会弹出Fragment D
,并留Fragment B
在顶部。Fragment C
完全从堆栈中删除。
我像这样将每个片段添加到堆栈中
FragmentTransaction ft = manager.beginTransaction();
ft.replace(id, instance, getTag(instance));
ft.addToBackStack(getTag(instance));
ft.commit();
我认为这可以通过在没有 的情况下进行相同的调用来实现addToBackStack
,但它只是产生Fragment D
并Fragment B
重叠。