Navigation 指南

[toc]
由于官网暂时没有中文版本,所以在这里根据内容抽空做了一些中文的版本.

原文首发于 https://leonchen1024.com/2019/07/04/Navigation/#more

Navigation 是用来管理你的app中内容的跳转,返回等操作.它主要包含了以下三个部分:

  • Navigation graph : 一个 xml 资源包含了所有的导航相关的信息. 这些信息包含了你app里所有独立的内容区域,也就是 destinations .
  • NavHost : 一个空白的容器用来展示你的 Navigation graph 中的 destinations . Navigation 模块中包含了一个默认的实现 NavHostFragment 用来展示 Fragment 的 destinations .
  • NavController : 一个管理 NavHost 中的导航的对象. 会在用户使用app的时候管理 NavHost 中的内容.

当在页面内导航的时候,你可以告诉 NavController 你想要通过Navigation graph 中的某个路径或者直接导航到一个destination .这时候 NavController 就会在 NavHost 中展示合适的 destination.

Navigation 模块还提供了其他的好处,比如:

  • 处理了 fragment transactions
  • 默认情况下正确的处理了向上和返回动作
  • 为动画和过渡提供了标准化的资源
  • 实现和处理了深链接
  • 内置了 Navigation UI 组件,比如 navigation drawers 和 bottom navigation,可以减少附加的工作
  • Safe Args - 一个 Gradle 插件当导航并在两个目的地中传递数据的时候提供了类型安全机制
  • ViewModel 支持 - 你可以将 ViewModel 的作用域设置为 navigation graph 来在不同的 目的地之间共享 UI 相关连的数据

并且你还可以使用 Android Studio's Navigation Editor 来查看和编辑 navigation graphs.

原文首发于 https://leonchen1024.com/2019/07/04/Navigation/#more

Next steps

For more documentation and resources related to the Navigation component, see the following.

Getting started

Further topics

Additional resources

To learn more about navigation, see the following additional resources.

Samples

Codelabs

Blog posts

Videos

Reference

https://developer.android.google.cn/guide/navigation

About Me

我的博客 leonchen1024.com

我的 GitHub https://github.com/LeonChen1024

微信公众号

在这里插入图片描述
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容