【问题标题】:How do I link multiple activities in android navigation editor?如何在 android 导航编辑器中链接多个活动?
【发布时间】:2018-12-11 03:39:00
【问题描述】:

我正在学习 android 开发和导航组件,尝试像 document 所写的那样链接多个活动。但似乎不可能在两个活动之间为单个导航图创建操作,这对我来说是合理的,正如文档所写的那样。

NavController 及其导航图包含在单个活动中。因此,在迁移现有项目以使用导航架构组件时,通过为每个 Activity 中的目的地创建导航图,专注于一次迁移一个 Activity。

那么问题是下面这句话是什么意思?我可以向一个导航图添加多个活动,但无法在它们之间添加链接(操作)。

然后可以通过将活动目的地添加到导航图来链接单独的活动,替换整个代码库中 startActivity() 的现有用法。

【问题讨论】:

  • 理论上,我们可以创建多个导航图文件(每个功能模块一个),它们只代表模块内部导航。模块本身之间的导航可以通过将功能模块的图表包含到父模块的入口点来实现。

标签: android android-jetpack android-architecture-navigation


【解决方案1】:

由于每个 NavController 和导航图都包含在单个活动中,<activity> 目标是该图的退出点 - 一旦您使用 navigate(R.id.your_activity_destination) 转到下一个活动,NavController 和图将不再处于活动状态(它在后栈上的 Activity 上,而不是新启动的 Activity 上)。

在您的第二个活动中,您将拥有第二个导航图,其中包含任何其他 <activity> 出站目的地,以进行进一步的活动。

【讨论】:

  • 必须通读 10 多个 Medium 指南才能最终得到正确答案:)
  • @Oleksandr - 在Migrate to Navigation documentation 中也特别提到了它
  • @ianhanniballake 我在产品列表页面上有底部导航视图和应用栏,但在详细信息页面上没有底部导航视图。我如何通过架构组件实现这一目标。因为,无论我附加到导航图的任何片段,它都会显示底部导航视图
  • @ianhanniballake 如果我导航到一个活动(活动 B),它会将活动 A 更改为活动 B。但是如果我从图 A(活动 A)移动到图 B(活动 B),导航组件决定使用 Activity A 作为图 B 中片段的主机,即使在图 B 中它显示为 Activity B 作为主机。这是一个错误还是故意的?
  • @JavierSegoviaCordoba - 听起来您应该发布自己的问题,并在导航图上提供更多详细信息,但如果您有两个嵌套图并在它们之间导航,那么这一切都发生在一个主机内(并且因此,一项活动)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-14
  • 2023-02-26
  • 2017-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多