PopBackStack但保留android中的第一个片段

use*_*104 12 android android-fragments back-stack android-fragmentactivity fragment-backstack

我正在处理片段事务,而backstack是这样的:

fragA => fragB => fragC => fragD
Run Code Online (Sandbox Code Playgroud)

我想从碎片回来之后回到fragA

fragD => onBackPress => fragA
Run Code Online (Sandbox Code Playgroud)

所以,我试过像:

getChildFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
Run Code Online (Sandbox Code Playgroud)

但它清除了所有的后台堆叠,如何将第一个碎片保留在后台堆叠中?非常感谢

Leo*_*dos 17

你可以这样做:

  • 添加fragA而不将其添加到backStack.因此它始终处于
    活动状态,并且不会对后退按钮作出反应.
  • 当你打开fragD时你应该清除碎片BackStack.所以当你从D frag按下后退按钮时,你会回到A.

PS还有其他方法可以做你想要的.这取决于...

  • 我清除了整个 backstack,然后添加了 fragA 和 fragD 。谢谢 (2认同)