10

我正在尝试使用通知中的 PendingIntent 实现到我的应用程序的特定详细信息页面的导航,但是我在从详细信息页面重新创建返回堆栈一直到开始目的地时遇到问题。

我在这里制作了一个示例应用程序,其中包含一个活动和三个片段来演示:

Fragment 1   ->   Fragment 2  ->  Fragment 3
(start dest) <-               <-

从片段 1(起始目的地),我使用直接导航到片段 3

    Navigation.findNavController(this, R.id.nav_host_fragment).navigate(R.id.fragment2,
            null,
            NavOptions.Builder()
                    .build())

从片段 3 开始,当我打电话时,Navigation.findNavController(this,R.id.nav_host_fragment).navigateUp()我被导航回片段 1。有没有办法让它导航到新创建的片段 2?

4

1 回答 1

4

感谢 MG 指出了正确的方向,我已经设法通过使用导航库手动创建 backstack 来解决这个问题。这意味着顺序调用findNavController(...).navigate(...)多次来创建一个backstack。

例如,当我深层链接到片段 3 但想要向上导航回片段 1 和 2 时,我调用:

findNavController.navigate(R.id.fragment1, ...)
findNavController.navigate(R.id.fragment2, ...)
findNavController.navigate(R.id.fragment3, ...)
于 2019-03-06T12:22:42.880 回答