如何使用导航组件执行条件反向导航?

时间:2020-05-04 19:29:36

标签: android android-architecture-navigation android-navigation

我有一个名为“ C”的目标片段,可以使用3种不同的流之一导航到该片段。

例如

流程1:A-> C

流程2:A-> B-> C

流程3:A-> X-> Y-> C

我正在使用全局操作导航到C,因为它使我可以使用相同的操作进行导航,而不管我是在Flow 1、2还是3中。这一切似乎都很好,但是我已经现在无法从C导航回来。

对于流1和2,我想从C返回到A。我一直在通过调用.popBackStack(R.id.A, false)来做到这一点,该方法效果很好。现在,我们将Flow 3添加到了我们的应用程序中。在流程3中,当我从C导航返回时,我想转到X,而不是A。所以我以前使用.popBackStack(R.id.A, false)的解决方案在这里不起作用,因为这总是使我回到A。

是否存在一种建议的回溯方式,该方式取决于用户如何到达他们当前所在的目的地?

我可以看到检查现有的后堆栈,如果看到X或Y,那么我会使用.popBackStack(R.id.x, false)..popBackStack(R.id.a, false)

启动C时,我可以传入“后ID”作为参数,然后可以在.popBackStack(backId, false)中使用

我在这里缺少明显的东西吗?

0 个答案:

没有答案