Navigation 指南

Navigation 指南

[TOC]

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

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.

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

微信公众号

wechat

You forgot to set the business and currency_code for Paypal. Please set it in _config.yml.
You forgot to set the url Patreon. Please set it in _config.yml.
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×