【问题标题】:Can a second navigation graph be used as a nested navigation graph?第二个导航图可以用作嵌套导航图吗?
【发布时间】:2020-11-25 13:21:25
【问题描述】:

似乎推荐使用新的 android 导航组件。我在图嵌套上关注官方tutorial

要将目的地分组为嵌套图表,请执行以下操作:

在导航编辑器中,按住 Shift 键,然后单击 要包含在嵌套图中的目的地。右键点击 打开上下文菜单,然后选择移动到嵌套图表 > 新图表。 目的地包含在嵌套图中。图 2 显示了一个 导航编辑器中的嵌套图:

到目前为止一切正常,我只有一个问题。 嵌套图都是一个大 xml 文件的一部分,这是一个问题,因为在使用源代码管理时可能会导致合并冲突。

所以我的问题是,如果我们简单地创建两个导航图并将新图包含为目的地,我们能否拥有相同的功能? 一切都会按预期工作,还是会产生意想不到的后果。 例如弹回导航控制器的根目录?我对 Android 不是很熟悉,但我担心会创建一个新的导航控制器,当有两个导航图时我无法轻松导航。

教程中似乎没有提到这一点。

【问题讨论】:

    标签: android android-navigation-graph


    【解决方案1】:

    根据Reference other navigation graphs with <include>

    虽然这在功能上与使用嵌套图相同,但包含允许您使用来自其他项目模块或库项目的图

    <include> 在运行时扩展为与嵌套图相同的功能 - 在弹出到其他目的地等方面,您可以执行的操作没有区别。

    但请注意,Safe Args 不适用于单独的导航图文件(因为您可以将该图包含在多个其他图中,因此无法保证该文件之外的任何内容实际上“安全”存在),因此您需要确认 Safe Args 的任何使用都在单个文件中(使用其他机制,例如 manually navigatingnavigating by deep link 导航到您知道存在但无法在编译时验证的图表)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-09
      • 2018-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多