如何使用导航组件切换到不同后堆栈中的其他片段?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用导航组件切换到不同后堆栈中的其他片段?相关的知识,希望对你有一定的参考价值。

我有3个底部导航选项卡,称为Home, Dashboard, Profile

  • Home中,我有Fragment1Fragment2
  • Dashboard中,我有Fragment3Fragment4
  • [在Profile中,我有MyProfileEditProfile

现在,在Fragment2中,按钮changeAvatar可以打开堆栈EditProfile中的Profile。因为EditProfile应该在选项卡Profile中,所以如果我不想将EditProfile包含在navGraphHome中,该如何实现该行为?

答案

尝试使用深层链接

导航图。

<fragment
    android:id="@+id/editProfileFragment"
 >

...
    <deepLink
        android:id="@+id/deepLink"
        app:uri="yourapp://edit/prfile" />
...
</fragment>

在片段中。

findNavController().navigate(Uri.parse("yourapp://edit/prfile"))

以上是关于如何使用导航组件切换到不同后堆栈中的其他片段?的主要内容,如果未能解决你的问题,请参考以下文章

Android导航组件:如何保存片段状态

如何阻止片段一直弹出到根片段? [导航组件]

无法移动到嵌套子导航组件中的父片段?

导航架构组件 singleTask 或 singleInstance 在返回堆栈中

在 Android Navigation 组件中使用 backstack 打开不同层次结构中的片段

如何在我的 Xcode Swift 项目的不同导航堆栈中从一个视图控制器屏幕切换到另一个?