如何从导航控制器清除后退堆栈



如果我有 4 个片段(A、B、C 和 D(,并且我从左到右移动到 D 处结束,我想清除堆栈直到 A。

所以在使用导航图的时候,可能是在C片段的动作下 这样:

<action
android:id="@+id/c"
app:destination="@+id/d"
app:popUpTo="@id/a"
app:popUpToInclusive="true" />

但是当我这样做时,C 片段不会从 backstack 中清除。这意味着当我从 d 单击反压时,c 来了,然后是 a。 请问我该如何解决这个问题?

要实现A->B->C->D,然后按返回返回A

在导航中定义:

<fragment
android:id="@+id/c"
...>
<action
android:id="@+id/action_c_to_d"
app:destination="@id/d"
app:popUpTo="@+id/b"
app:popUpToInclusive="true"/>
</fragment>

并使用:

findNavController().navigate(R.id.action_c_to_d)

相关内容

  • 没有找到相关文章