使用Android导航架构组件重新创建Backstack

问题描述 投票:7回答:1

我正在尝试使用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?

android back-stack android-navigation android-jetpack android-architecture-navigation
1个回答
0
投票

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

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

findNavController.navigate(R.id.fragment1, ...)
findNavController.navigate(R.id.fragment2, ...)
findNavController.navigate(R.id.fragment3, ...)
© www.soinside.com 2019 - 2024. All rights reserved.