【发布时间】:2021-11-04 16:19:43
【问题描述】:
我在应用中有以下导航。
A->B->X->Y->R
或
A->C->X->Y->R
或
A->X->Y->R
或
A->R
我不希望 X 和 Y 在 backstack 中。
我知道比实际行动 Y->R 我可以做这样的事情:
app:popUpTo="@id/B"
app:popUpToInclusive="true"
或
app:popUpTo="@id/C"
app:popUpToInclusive="true"
但我不想将参数传递给 X 和 Y 并执行单独的操作以返回 B 或 C。必须有更聪明的方法来做到这一点。
【问题讨论】:
-
当你从 Y 移动到 R 时,你想移除 X & Y 并且后栈应该是 A->B->R 或 A->C->R。对吗?
-
是的,没错
-
在您在问题中显示的两个选项中,我认为
app:popUpToInclusive应该是false,否则B/C 也会被弹出。而要达到你想要的,你可以设置app:popUpTo="@id/X"和app:popUpToInclusive="true" -
我忘记了一些路径。我编辑了一个问题。那么在这种情况下,我应该将这个 popUpTo 放在哪个导航操作中?
-
在您的操作 Y->R 中,添加我在上一条评论中编写的代码。
标签: android kotlin navigation android-jetpack back-stack