我正在尝试使用通知中的PendingIntent来实现到应用程序的特定“详细信息”页面的导航,但是我一直无法从“详细信息”页面重新创建返回堆栈,一直回到起始目标。
我制作了一个示例应用here,其中包含一个活动和三个片段,以进行演示:
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?
答案 0 :(得分:0)
感谢M.G指向正确的方向,我设法通过使用导航库手动创建后退堆栈来解决此问题。这意味着多次依次调用findNavController(...).navigate(...)
来创建一个堆栈。
例如,当我深入链接到片段3,但想要向上导航回到片段1和2时,我会调用:
findNavController.navigate(R.id.fragment1, ...)
findNavController.navigate(R.id.fragment2, ...)
findNavController.navigate(R.id.fragment3, ...)