Android Navigation基本使用

目录

1. Navigation概述

Navigation是指支持用户导航、进入和退出应用中不同内容片段的交互。用于处理 Fragment事务,使fragment之间可以自由切换和跳转,同时还包括导航界面模式(例如抽屉式导航栏和底部导航),可以降低用户工作量

2. Navigation组成

  • 导航图:在一个集中位置包含所有导航相关信息的 XML 资源。包含用户可以跳转的所有路径,对Navigation来说就像是地图。
  • NavHost:用来显示导航图中目标所要展示的内容。
  • NavController:在 NavHost 中管理应用导航的对象。负责NavHost里内容的改变

如果要在应用中导航,则通过NavController,沿导航图中的特定路径导航至特定目标,或直接导航至特定目标。NavController 就可以在NavHost里进行跳转。

3. 设置环境

在Module的build.gradle下添加如下依赖,再进行同步,完成环境设置

    dependencies {
    // 指定Navigation的版本
      def nav_version = "2.5.3"

      // 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"

      // Feature module Support
      implementation "androidx. navigation:navigation-dynamic-features-fragment:$nav_version"

      // Testing Navigation
      androidTestImplementation "androidx.  navigation:navigation-testing:$nav_version"

      // Jetpack Compose Integration
      implementation "androidx.navigation:navigation-compose:$nav_version"
    }

4. 使用方法

4.1. 创建导航图

导航图是一种资源文件,其中包含Navigation所有目的地和操作。会显示应用的所有导航路径。

4.1.1. 具体操作

  1. 在“Project”窗口中,点击 res 目录,然后依次选择 New > Android Resource File。此时系统会显示 New Resource File 对话框。
  2. 在 File name 字段中输入Navigation的名称,例如“graph”。
  3. 从 Resource type 下拉列表中选择 Navigation,然后点击 OK。

这样就完成了空白导航图的创建,这时来到res文档下就会看到navigation文件夹还有你创建的导航图
res

4.2. 向Activity添加NavHost

分成两种方法:

  1. 通过 XML 添加
  2. 使用布局编辑器添加

4.2.1. 通过 XML 添加

在activity中加入如下代码

<!-- 这里navGraph的值要改为自己导航图的名字 -->
    <androidx.fragment.app.FragmentContainerView
        android:id="@+id/fragmentContainerView"
        android:name="androidx.navigation.fragment.NavHostFragment"
        android:layout_width="409dp"
        android:layout_height="729dp"
        app:defaultNavHost="true"
        app:navGraph="@navigation/graph"
        tools:layout_editor_absoluteX="1dp"
        tools:layout_
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值