Jetpack - Navigation

Navigation

        • 官方文档
        • 简单使用
            • 新建两个fragment
            • 新建navigation的xml
            • Activity显示fragment

官方文档

导航组件由以下三个关键部分组成:

  • 导航图:在一个集中位置包含所有导航相关信息的 XML 资源。这包括应用内所有单个内容区域(称为目标)以及用户可以通过应用获取的可能路径。
  • NavHost:显示导航图中目标的空白容器。导航组件包含一个默认 NavHost 实现 (NavHostFragment),可显示 Fragment 目标。
  • NavController:在 NavHost 中管理应用导航的对象。当用户在整个应用中移动时,NavController 会安排 NavHost 中目标内容的交换。
    在应用中导航时,您告诉 NavController,您想沿导航图中的特定路径导航至特定目标,或直接导航至特定目标。NavController 便会在 NavHost 中显示相应目标。

导航组件提供各种其他优势,包括以下内容:

  • 处理 Fragment 事务。
  • 默认情况下,正确处理往返操作。
  • 为动画和转换提供标准化资源。
  • 实现和处理深层链接。
  • 包括导航界面模式(例如抽屉式导航栏和底部导航),用户只需完成极少的额外工作。
  • Safe Args - 可在目标之间导航和传递数据时提供类型安全的 Gradle 插件。
  • ViewModel 支持 - 您可以将 ViewModel 的范围限定为导航图,以在图表的目标之间共享与界面相关的数据。
    此外,您还可以使用 Android Studio 的 Navigation Editor 来查看和编辑导航图

简单使用

dependencies {
  def nav_version = "2.1.0"

  // Java language implementation
  implementation "androidx.navigation:navigation-fragment:$nav_version"
  implementation "androidx.navigation:navigation-ui:$nav_version"

  // Kotlin
  implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
  implementation "androidx.navigation:navigation-ui-ktx:$nav_version"

}
新建两个fragment
新建navigation的xml
  • 添加新建的两个fragment到xml中
  • 每条线是一个action ,通过id找到action进行页面导航
    Jetpack - Navigation_第1张图片
    OneFragmetn -> TwoFragment ,通过id跳转
    Jetpack - Navigation_第2张图片
    返回上一个fragment
    Jetpack - Navigation_第3张图片
Activity显示fragment

Jetpack - Navigation_第4张图片

你可能感兴趣的:(jetpack)