Jetpack Navigation 的工作流程涉及多个核心类和复杂的交互,以下是从源码角度对其主要工作流程的分析:
一、初始化阶段
-
NavHostFragment的创建:- 当在布局文件中使用
<androidx.fragment.app.FragmentContainerView android:name="androidx.navigation.fragment.NavHostFragment"/>时,系统会实例化NavHostFragment。这个类是NavHost的具体实现,它负责管理导航图中的各个片段(Fragment)的显示和切换。 - 在
NavHostFragment的onCreate方法中,会初始化一些重要的成员变量,如NavController和LifecycleOwner等。
- 当在布局文件中使用
-
NavController的获取:NavHostFragment通过findNavController()方法获取NavController实例。这个方法会遍历视图层次结构,查找最近的NavControllerProvider,通常是NavHostFragment自身。NavController是导航的核心控制对象,它负责处理导航操作,如导航到特定目的地、返回上一个目的地等。
-
导航图的加载:
NavController在初始化过程中会加载导航图。导航图通常是一个 XML 文件,定义了应用的导航结构,
从源码看Jetpack Navigation工作流程

最低0.47元/天 解锁文章
2827

被折叠的 条评论
为什么被折叠?



