【问题标题】:Android navigation component, backstack, nav graph, skip fragmentsAndroid导航组件、backstack、nav graph、skip Fragments
【发布时间】: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


【解决方案1】:

在 Y->R 的操作中,您可以添加:

app:popUpTo="@id/X"
app:popUpToInclusive="true"

这将弹出所有内容直到 X(包括 X),您将获得所需的 backstack。

【讨论】:

    猜你喜欢
    • 2012-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多