Android Jetpack组件Navigation导航组件的基本使用

 更新时间:2022年06月16日 15:37:38   作者:Aska小强  
本篇主要简单介绍了一下 Navigation 是什么 以及使用它的流程是什么,并且结合实际案例 操作了一番,Navigation 还有很多其他用法,如条件导航、嵌套图、过度动画 等等功能 有机会再操作,需要的朋友可以参考下

本篇主要介绍一下 Android Jetpack 组件 Navigation 导航组件的 基本使用

当看到 Navigation单词的时候 应该就大概知道 这是一个关于导航用的,下面我来简单介绍一下 如何使用Navigation组件的基本使用流程,并且一步步 实际操作一番 Navigation ,下图是案例,实现登录到详情的跳转

1.Navigation 基本概念

Navigation 是一个Jetpack组件 支持用户导航,用于在 Android 应用中的“目标”之间进行导航,无论 目标是Fragment,Activity 还是其他组件。

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

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

简单点 下面直接来操作一下 来体验一下Navigation 的使用流程

2.Navigation 使用入门

2.1 添加Navigation依赖

简单点 只需要设置 navigation-fragment 和 navigation-ui 即可

dependencies {
  def nav_version = "2.4.2"
​
  // 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"
}

2.2 创建导航图

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

向项目添加导航图,请执行以下操作:

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

当您添加首个导航图时,Android Studio 会在 res 目录内创建一个 navigation 资源目录。该目录包含您的导航图资源文件(例如 nav_graph.xml)。

新建完成后 就自动 在 res 下面生成 navigation目录,里面存放上面新建的 导航图

2.3 导航图中添加目的地Fragment

点击上面的菜单 + 就可以新建 destination 了

新建了2个 fragment ,一个是 loginFragment 一个是 welcomeFragment

把他们两个连起来 从 loginFragment 到 welcomeFragment ,会自动生成一个 action

顺便稍微美化一下 loginFragment 和 welcomeFragment

2.4 Activity添加 NavHost

导航宿主NavHost 是 Navigation 组件的核心部分之一。导航宿主是一个空容器,用户在您的应用中导航时,目的地会在该容器中交换进出。

导航组件包含一个默认 NavHost 实现 (NavHostFragment

下面在MainActivity 中添加一个 NavHostFragment

拖入 Activity中 它会自动展示出可用的 Navigation Graph 导航图,就是上面创建的 my_nav_graph,选择它即可

2.5 LoginFragment 代码编写

navController.navigate(R.id.action_loginFragment_to_welcomeFragment,bundle);

核心代码如下,就是获取 输入的用户名和密码 并且携带用户名 导航到 welcomeFragment

2.6 welcomeFragment 代码编写

很简单就是把 loginFragment 传入的参数 username 获取到 展示在TextView 上即可

注意:通过 getArguments() 去获取 Bundle 的参数

最终效果如下:

总结

本篇主要简单介绍了一下 Navigation 是什么 以及使用它的流程是什么,并且结合实际案例 操作了一番,Navigation 还有很多其他用法,如条件导航、嵌套图、过度动画 等等功能 有机会再操作

到此这篇关于Android Jetpack Navigation基本使用的文章就介绍到这了,更多相关Android Jetpack Navigation使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Android10 启动之SystemServer源码分析

    Android10 启动之SystemServer源码分析

    这篇文章主要为大家介绍了Android10 启动之SystemServer源码分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • Android xUtils更新到3.0后的基本使用规则详解

    Android xUtils更新到3.0后的基本使用规则详解

    xUtils是基于android的开发框架,简化了很多的开发步骤,可以说是非常好的开发工具。下面小编给大家带来了Android xUtils更新到3.0后的基本使用规则详解,感兴趣的朋友一起学习吧
    2016-08-08
  • Android文字匹配度算法及实际应用示例

    Android文字匹配度算法及实际应用示例

    本文介绍了Android应用中常用的文字匹配度算法Levenshtein Distance,并给出了实际应用示例,通过合理选择和应用文字匹配度算法,可以实现多种功能,提升用户体验,增强应用的实用性,需要的朋友可以参考下
    2024-05-05
  • Android实现TextView中的部分文字实现点击跳转功能

    Android实现TextView中的部分文字实现点击跳转功能

    在移动端应用中,往往需要在一段文字中让某几个关键词或短语具备点击跳转功能,如果将整段文字放到 Button、Link 或单独的 View 中,通常会带来布局复杂、样式难以统一、可维护性差等问题,所以本文将给大家介绍Android实现TextView中的部分文字实现点击跳转功能
    2025-04-04
  • android闪关灯的开启和关闭方法代码实例

    android闪关灯的开启和关闭方法代码实例

    这篇文章主要介绍了android闪关灯的开启和关闭方法代码实例,本文直接给出代码和配置实例,需要的朋友可以参考下
    2015-05-05
  • Flutter中mixin的使用详解

    Flutter中mixin的使用详解

    这篇文章主要介绍了Flutter中mixin的使用,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-05-05
  • Android入门之在Activity之间穿梭的Intent

    Android入门之在Activity之间穿梭的Intent

    Intent可以用来启动Activity(startActivity(Intent))、Serveice(startService(Intent))等组件,可以用来绑定Activity和Service以建立它们之间的通信(bindServiceConnaction(Intent,ServiceConnection,int)),可以作为Broadcast Intent发送给广播接收器
    2021-10-10
  • Android ViewPager画廊效果详解及实例

    Android ViewPager画廊效果详解及实例

    这篇文章主要介绍了Android ViewPager画廊效果详解及实例的相关资料,这里提供实例代码及实现效果图,具有参考价值,需要的朋友可以参考下
    2016-12-12
  • 基于AnDroid FrameLayout的使用详解

    基于AnDroid FrameLayout的使用详解

    本篇文章是对AnDroid FrameLayout的使用进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • android常见手动和自动轮播图效果

    android常见手动和自动轮播图效果

    这篇文章主要为大家详细介绍了android常见手动和自动轮播图效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11

最新评论