Navigation 指南

作者: 陈林峰LeonChen1024 | 来源:发表于2019-07-29 22:00 被阅读13次

    [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

    微信公众号

    在这里插入图片描述

    相关文章

      网友评论

        本文标题:Navigation 指南

        本文链接:https://www.haomeiwen.com/subject/npxwrctx.html