首页 文章

Android导航架构组件 - 导航架构组件是否仅用于单个活动?

提问于
浏览
7

我目前正在学习新的 Android Navigation Architecture Componenthttps://developer.android.com/topic/libraries/architecture/navigation/) .

我有点混淆它的动机和概念,这是我的不确定性:

  • Android Navigation Architecture Component 旨在消除在单个应用中使用多个Activity的需要吗?这意味着,整个应用程序只需要一个单一活动,所有其他页面将是片段?

  • 在应用程序中使用多个活动,但同时使用 Android Navigation Architecture Component 导航片段实际上违反了 Android Navigation Architecture Component 的目的吗?

Example Scenario for Question 2

enter image description here

1 回答

  • 5

    理论上,Navigation库支持您可能想要使用的任何体系结构 . 开箱即用它可以处理活动和碎片作为导航目的地,但您可以通过implementing your own Navigator插入您自己的解决方案(例如,参见this article) .

    但是,引用/转述自Google I/O talk on Navigation

    我的活动实际上意味着什么?现在,一些应用程序非常活动,一些是片段重,或完全在不同的系统中 . 我们正在转向一种模式,其中“活动”不仅仅是应用程序的入口点,而不是应用程序内容的所有者 . 它实际上只是存储全局状态,例如导航抽屉或底栏等全局导航 .

    所以谷歌确实建议你的应用只有几个活动,因为你只需要它们作为入口点 . 例如,您可以有一个从启动器打开,另一个通过深层链接打开 . 之后,当您的应用程序启动时,您可以使用Fragments完成其中的所有其他操作 .

    总结并直接回答您的两个问题:

    • 导航架构组件本身并不是“旨在消除使用多个活动的必要性”,而是谷歌建议您在使用它时所做的事情 .

    • 您绝对可以使用多个活动和多个碎片混合在一起 . 如果您愿意,您甚至可以使用纯粹基于视图的导航的单个活动 . 全取决于你 . 如果您发现导航库与您构建应用程序的方式结合使用,请使用它 .

    对于自定义目标,库的工具可能不是那么好(例如,可视化编辑器可能暂时只支持活动和片段),但是您可以从代码中使用它 .

相关问题