I . 数据绑定 简介
1 . 数据绑定作用 : 不使用 Java 代码 , 直接在 layout 布局文件 中完成组件的 文本 , 图片 等数据 的设置 ;
2 . 数据绑定 与 视图绑定 : 视图绑定仅仅是替代了 Java 代码中的 findViewById ( ) 操作 , 比视图绑定更进一步 , 在替代上述操作的基础上 , 还为其设置了具体的值 ; 数据绑定比视图绑定功能更强大 ;
II . 数据绑定 使用前提 ( 环境支持 )
1 . 数据绑定 ( DataBinding ) 使用前提 :
① 数据绑定最小兼容版本 : Android 4.0 , API 版本 14 ;
② Gradle 插件版本 : 1.5.0 以上的版本 ;
2 . Gradle 插件版本 与 Gradle 版本 对应关系 : 推荐使用当前最新配置 ( 2020/04/15 ) , 最新 Gradle 插件版本是 3.6.1 , 最新 Gradle 版本是 5.6.4 ;
① Gradle 插件版本 : 在 Project 下的 build.gradle 中配置 , 如下配置的是 3.6.1 版本的 Gradle 插件 ;
② Gradle 版本 : 在 Project 下的 gradle/wrapper/gradle-wrapper.properties 文件中配置 , 如下配置的是 5.6.4 版本的 Gradle ;
3 . Gradle 插件版本 与 Gradle 版本对应 关系 : 如果对应错了 , Android 应用无法编译 ;
Gradle 插件版本 Gradle 版本
1.0.0 - 1.1.3 2.2.1 - 2.3
1.2.0 - 1.3.1 2.2.1 - 2.9
1.5.0 2.2.1 - 2.13
2.0.0 - 2.1.2 2.10 - 2.13
2.1.3 - 2.2.3 2.14.1+
2.3.0+ 3.3+
3.0.0+ 4.1+
3.1.0+ 4.4+
3.2.0 - 3.2.1 4.6+
3.3.0 - 3.3.2 4.10.1+
3.4.0 - 3.4.1 5.1.1+
3.5.0+ 5.4.1-5.6.4
III . 数据绑定 使用流程 一 : 启用数据绑定
启用数据绑定 : 在 Module 的 build.gradle 构建脚本中 的 android 中配置如下代码 :
/** 启用数据绑定 */ dataBinding { enabled = true }
IV . 数据绑定 使用流程 二 : 定义数据类
定义数据类 :
package kim.hsl.db /** 视图绑定数据类 */ data class Student (var name:String, var age:Int)
V . 数据绑定 使用流程 三 : 定义数据绑定布局
1 . 定义根标签及命名空间 : 定义 <layout> 根标签 , 并且将布局文件的命名空间定义在该标签中 ;
<?xml version="1.0" encoding="utf-8"?> <!-- 根标签是 layout, 将根布局的命名空间都拷贝到根标签中 --> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> </layout>
2 . 定义对象数据标签 : 使用 <data> 标签 , 在标签中定义 <variable> 字标签 , 在 <variable> 标签中使用 name 属性定义变量名 , type 属性定义类的 包名.类名 全路径类型名称 ;
如下 : 定义 kim.hsl.db.Student 类的对象 student , 之后就使用 student 变量名来调用类中的字段 , 如 student.name 获取对象的 name 属性 ;
<?xml version="1.0" encoding="utf-8"?> <!-- 根标签是 layout, 将根布局的命名空间都拷贝到根标签中 --> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <!-- data 标签中设置要绑定的对象名称 和 对应的类名 --> <data> <variable name="student" type="kim.hsl.db.Student"/> </data> </layout>