标题Navgation导航组件
navgation的关键组成
- 导航图
- NavHost
- NavController
Navgation-导航图
简单理解就是窗体布局组成一个缩略关联图
(注:layout 下 设计了每个界面的内容;navgation是将这些界面经行关联 毕竟我们的Activity切换等同于界面内容切换 .navgation导航图就是提前设计好这些Intent/intent-info)
NavHost
简单理解为我们所有的导航图需要一个容器来承载我们导航的内容,这就好比我们的身体承载我们的各个肢体
NavgationController
简单理解为我们的大脑 控制我们的导航图以及导航图的行为!
(注:行为比如说类似activity的跳转,动画,深层链接等等)
核心依赖
def nav_version = "2.3.5"
// Java language implementation
implementation "androidx.navigation:navigation-fragment:$nav_version"
implementation "androidx.navigation:navigation-ui:$nav_version"
![navgation创建目录](https://www.icode9.com/i/ll/?i=36983bbe09a0432fb6443fa730c18db8.png)
我们所有的导航组件放于res->navgation目录下
navgation核心标签的说明
- android:id 导航id (导航唯一标识 和ui组件id一样 )
- app:startDestination 当前导航图中导航起始目的地
app:startDestination
这里简单说明下这个属性的用途
1.在安卓中Actviity依然是我们导航图的宿主,我们导航图是所有ui的脑图,那么这个就是指定我们ui的第一个导航位置!
2.在我们后面会介绍到我们导航图可以存在多个 那么我们导航到别的导航图时也必须指定一个开始位置.
创建我们的额导航图
介绍下每个标签的作用
1.include标签
<include>标签和ui中的功能基本一样 引用其他导航图的
例子:
我们需要将second导航图引入nav_graph.xml中
2.activity标签
导入activity到我们的导航图中 使用activity标签的name属性根据全路劲引入
3.fragment标签
导入fragment到我们的导航图中 使用fragment标签的name属性根据全路劲引入
4.action标签
action标签是我们导航图之间的导航行为,比如fragment->activity fragment->fragment等必须配置action标签 和activity的action一样 注意 这也让fragment具有了"跳转"功能并可以携带参数(之前fragment通讯需要借助activity)
后面在具体说明属性 这里只是介绍:destination 表示我们跳转到的目标activity/fragment
5.argument标签
跳转携带的参数
name 表示我们的key键 defaultValue表示我们的默认参数
argtype表示我们参数的类型
6.dialog 标签
引入dialog
7.deeplink标签
深层连接标签 (我们通常说的scheme)
8.navgation标签
导航图标签