01
Navigation组件初探
什么是Navigation?为什么需要单Activity架构?Navigation组件解决了什么问题?
概念入门
02
环境搭建与依赖配置
在build.gradle中引入Navigation依赖,配置Safe Args插件。
环境Gradle
03
创建第一个Navigation项目
创建Activity、创建NavHostFragment、创建Fragment、编写导航图。
实践导航图
04
导航图(NavGraph)详解
可视化编辑与XML编辑、<navigation>、<fragment>、<action>、<argument>标签。
XML核心
05
Fragment之间的跳转
使用NavController进行页面跳转、传递简单参数、处理返回栈。
导航参数
06
Safe Args插件
为什么需要Safe Args?配置、生成Direction类、类型安全的参数传递。
安全插件
07
NavigationUI与菜单
集成Toolbar/ActionBar、NavigationUI自动处理菜单、DrawerLayout配置。
UI菜单
08
深层链接(DeepLink)
隐式/显式深层链接、导航图中配置DeepLink、PendingIntent处理。
DeepLink外部跳转
09
导航动画
页面跳转过渡动画、自定义动画资源、Shared Element Transition。
动画过渡
10
条件导航与导航选项
popUpTo、popUpToInclusive、launchSingleTop、动态跳转目标。
返回栈选项
11
ViewModel与Navigation
Fragment间共享ViewModel、作用域、by navGraphViewModels()。
ViewModel作用域
12
多返回栈支持
Navigation 2.4.0+多返回栈、BottomNavigationView、保存/恢复Fragment状态。
返回栈底部导航
13
导航与生命周期
NavController生命周期感知、OnDestinationChangedListener。
生命周期监听
14
嵌套导航图
为什么需要嵌套?创建嵌套图、父图跳转子图、管理返回栈。
嵌套模块化
15
导航与依赖注入(Hilt)
在Navigation中使用Hilt、为Fragment注入ViewModel、NavGraph作用域。
HiltDI
16
导航与数据绑定
布局中使用Navigation变量、数据绑定处理点击、简化数据传递。
DataBindingMVVM
17
导航与状态保存
处理配置变更、保存Fragment状态、SavedStateHandle。
状态SavedState
18
导航测试
测试导航动作、Safe Args Direction、Navigation测试库、UI测试。
测试UI测试
19
导航与模块化
多模块项目Navigation、模块间导航、动态功能模块。
模块化多module
20
导航与Compose
Compose中使用Navigation、NavHost与composable()、参数传递。
ComposeJetpack
21
导航与Service/广播
Service/BroadcastReceiver触发导航、全局导航、后台任务跳转。
Service广播
22
导航与通知
点击通知跳转页面、配置通知DeepLink、处理通知参数。
通知DeepLink
23
导航与WebView
集成WebView、处理返回键、WebView与Fragment通信。
WebView交互
24
导航与TabLayout
TabLayout+ViewPager2、Tab中使用Navigation、Tab切换状态。
TabLayoutViewPager
25
导航与搜索
搜索功能实现、搜索结果导航、搜索建议处理。
搜索建议
26
导航与权限
导航流程中处理运行时权限、权限请求与跳转协调、拒绝处理。
权限运行时
27
导航与表单
多步骤表单导航、保存草稿、表单验证与跳转控制。
表单多步骤
28
导航与动画进阶
MotionLayout+Navigation、复杂过渡动画、自定义Navigator。
MotionLayout高级动画
29
常见问题与性能优化
Fragment复用、避免内存泄漏、懒加载、性能监控。
优化性能
30
综合实战:完整应用
构建单Activity多Fragment应用:登录、主页、详情、设置,Navigation串联所有页面。
实战完整项目