我目前正在学习新的 Android Navigation Architecture Component (https://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 :
1 回答
理论上,Navigation库支持您可能想要使用的任何体系结构 . 开箱即用它可以处理活动和碎片作为导航目的地,但您可以通过implementing your own Navigator插入您自己的解决方案(例如,参见this article) .
但是,引用/转述自Google I/O talk on Navigation:
所以谷歌确实建议你的应用只有几个活动,因为你只需要它们作为入口点 . 例如,您可以有一个从启动器打开,另一个通过深层链接打开 . 之后,当您的应用程序启动时,您可以使用Fragments完成其中的所有其他操作 .
总结并直接回答您的两个问题:
导航架构组件本身并不是“旨在消除使用多个活动的必要性”,而是谷歌建议您在使用它时所做的事情 .
您绝对可以使用多个活动和多个碎片混合在一起 . 如果您愿意,您甚至可以使用纯粹基于视图的导航的单个活动 . 全取决于你 . 如果您发现导航库与您构建应用程序的方式结合使用,请使用它 .
对于自定义目标,库的工具可能不是那么好(例如,可视化编辑器可能暂时只支持活动和片段),但是您可以从代码中使用它 .