Android Navigation Component 在图形中一次跳转几步

Android Navigation Component jump a few steps in graph at once

我使用导航组件,在某些情况下我需要一次向前导航几步。例如 FragmentA 指向 FragmentB,后者指向 FragmentC。我的目标是在某些情况下直接跳转到 FragmentC 但具有正常的导航图,因此当用户从 FragmentC 返回时 he/she 出现在 FragmentB 上,就好像他出现在FragmentC一一导航。

我发现 NavDeepLinkBuilder 可以通过以下方式解决我的问题:

            val pendingIntent = NavDeepLinkBuilder(context)
                .setGraph(R.navigation.my_graph)
                .addDestination(R.id.fragmentA_destination,
                .addDestination(R.id.fragmentB_destination)
                .setComponentName(MyActivity::class.java)
                .createPendingIntent()

            pendingIntent.send()

它确实做了我想要的,但有 2 个问题:

  1. 它完成了调用activity,我不知道我是否可以阻止它完成它。
  2. 这似乎根本不对,因为 PendingIntent 并非设计用于在我自己的应用程序内部导航,所以我上面所做的似乎是一种 hack。

那么,如果不使用此 PendingIntent 机制,我还能如何获得相同的结果?

只需多次调用 navigate(),首先调用片段 B,然后调用片段 C。事实上,这正是导航组件在内部处理深层链接的方式。