Android Jetpack架构组件 — Navigation入坑详解

本文详细介绍了Android Jetpack的Navigation组件,包括导航视图XML的配置、NavHostFragment的作用、NavController的使用,以及如何传递参数。Navigation简化了Fragment之间的跳转逻辑,通过safeArgs插件可以更安全地传递参数。尽管Navigation存在生命周期问题,但结合ViewModel使用能改善这一情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文首发于微信公众号「Android开发之旅」,欢迎关注 ,获取更多技术干货

前言

Navigation 直接翻译即为导航,它是 Android Jetpack 组件之一,让单 Activity 应用成为首选架构。应用内Fragment页面的跳转则由 Navigation 来处理,开发者无需在处理 FragmentTransaction 的复杂性以及相关的转场动画。

具体使用

在app的gradle.build中添加依赖:

def nav_version = "2.1.0"

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

首先我们定义三个Fragment,分别为Fragment1,Fragment2和Fragment3。实现逻辑为Fragment1点击跳转到Fragment2,Fragment2点击跳转到Fragment3,Fragment3跳转到Fragment1同时点击返回键时也返回到Fragment1。

navigation: 导航视图XML的根结点。里面定义相关fragment的跳转逻辑。

首先需要在res资源目录下新建 navigation 文件夹,右键新建一个Navigation resource file命名为nav_graph_main.xml。

文件左下脚分为两个Tab:Design和Text。Design视图是可视化的,可以直接选择相关fragment。Text视图是我们手写相关配置。

我们看下定义的nav_graph_main.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    app:startDestination="@id/fragment1">

    <fragment
        android:id="@+id/fragment1"
        android:name="com.jetpack.jetpackdemo.navigation.fragment.Fragment1"
       
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值