1、前言
最近简单看了下google推出的框架Jetpack,感觉此框架的内容可以对平时的开发有很大的帮助,也可以解决很多开发中的问题,对代码的逻辑和UI界面实现深层解耦,打造数据驱动型UI界面。
Android Architecture组件是Android Jetpack的一部分,它们是一组库,旨在帮助开发者设计健壮、可测试和可维护的应用程序,包含一下组件:
- 带你领略Android Jetpack组件的魅力
- Android Jetpack 架构组件之 Lifecycle(使用篇)
- Android Jetpack 架构组件之 Lifecycle(源码篇)
- Android Jetpack 架构组件之 ViewModel (源码篇)
- Android Jetpack 架构组件之 LiveData(使用、源码篇)
- Android Jetpack架构组件之 Paging(使用、源码篇)
- Android Jetpack 架构组件之 Room(使用、源码篇)
- Android Jetpack 架构组件之Navigation
- Android Jetpack架构组件之WorkManger
- 实战:从0搭建Jetpack版的WanAndroid客户端
上述时Android Architecture所提供的架构组件,本文一起来看一下Navigation组件的使用。
2、Navigation简介
导航架构组件简化了Android应用程序中导航的实现,通过在xml中添加元素并指定导航的起始和目的地,从而在Fragment之间建立连接在Activity中调用xml中设置的导航action从而跳转界面到目的地,简单来说它和之前在活动中调用startActivity的区别就类似于代码布局和xml中layout布局一样,既简单又可视化,如下图就是一个navigaton的xml图:
Navigation多数作用于Fragment中,不过导航组件还支持:Fragment、Activity、导航图和子图、自定义目标
3、Navigation设置操作
3.1、在项目中设置Navigation
- 开启Navigation支持
- 点击 File -》 Setting -》Experimental -> 选中 Enable Navigation Editor -> Restart Studio
- 添加项目组件依赖
dependencies {
def nav_version = "1.0.0-alpha06"
implementation "android.arch.navigation:navigation-fragment:$nav_version"
implementation "android.arch.navigation:navigation-ui:$nav_version"
androidTestImplementation "android.arch.navigation:navigation-testing:$nav_version"
}
- 创建 xml 文件
3.2、Navigation编辑器
- Navigation编辑器界面
- Navigation编辑器的三个部分:
- “目标”列表 - 列出“曲线图编辑器”中当前的所有目标
- 图表编辑器 - 包含Navigation图的可视化表示
- 属性编辑器 - 包含与Navigation图中的目标和操作关联的属性
3.3、确定目的地
- 要确定应用的目标,请使用以下步骤
- 从图形编辑器,单击新目的地 。出现“ 新目标”对话框
- 单击“ 创建空白目标”或单击片段或活动。将出现“新建Android组件”对话框
- 在“ 片段名称”字段中输入名称。此名称是片段类的名称
- 在“ 片段布局名称”字段中输入名称。此名称是片段的布局文件的名称,单击完成
- Attributes面板中显示以下属性
- Type:字段包含“Fragment”或“Activity”,以指示目标是否在源代码中实现为片段或活动
- Label:字段包含目标的XML布局文件的名称
- ID:字段包含将用于在代码中引用目标的目标ID
- Class:字段包含目标类的名称
上面的属性选中后都会自动生成xml中的代码,如:
<fragment android:id&