(译) Data Binding 使用入门

原文链接

学习在使用 Data Binding 库之前开发环境要做的准备,包括在 Android Studio 中支持 DataBinding。

数据绑定库提供了灵活性和广泛的兼容性,它是一个支持库,所以你可以在运行 Android 4.0 (API等级14) 以及更高的设备上使用它。

推荐在你的项目中使用最新的 Android Gradle 插件。但是数据绑定是在1.5.0及以上版本被支持的。

构建环境

要开始使用数据绑定,现在从 Android Sdk 管理器中下载库。

要配置你的应用来使用数据绑定,在你的app模块的 build.gradle 文件中添加 dataBinding元素,如下例所示:

android {
 ...
 dataBinding {
    enabled = true
    }
}

注意:你必须为依赖于使用数据绑定库的 app 模块配置数据绑定,即使 app 模块没有直接使用数据绑定。

Android Studio 对于数据绑定的支持

Android Studio 支持许多对于数据绑定代码的编辑特性。例如,它支持以下对于数据绑定表达式的特性:

  • 表达式高亮
  • 标记表达式语法错误
  • XML 代码补全
  • 引用,包含导航(例如导航到声明)以及快速文档

布局编辑器中的预览面板展示绑定表达式的默认值,如果提供了的话。例如,在下面的例子中,预览面板在 TextView 控件上展示了 my_default 这个值:

1
2
3
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{user.firstName, default=my_default}"/>

如果你需要在你产品的设计阶段展示一个默认值,你可以使用 tools 属性而不是一个默认的表达式值。

新的用于绑定类的数据绑定编译器


Android Gradle 插件版本 3.1.0-alpha06 包含了一个新的用来生成绑定类的数据绑定编译器。

新的编译器是增量创建绑定类的,这在大部分情形下加速了构建过程。想要学习更多关于绑定类的内容,查看生成的绑定类。

之前版本的数据绑定编译器是按编译托管代码的相同方式来生成绑定类的。如果您的托管代码编译失败,你可能会收到绑定类没有找到的错误报告。新的绑定编译器通过在托管编译器编译你的应用之前生成绑定类的方式来避免这些错误。

要打开新的数据绑定编译器,添加以下选项到你的gradle.properties文件中:

1
android.databinding.enableV2=true

你也可以通过添加以下参数的方式在您的gralde命令中打开新的编译器:

1
-Pandroid.databinding.enableV2=true

注意:在 Android 插件版本3.1中的新的数据绑定编译器不是向后兼容的。你需要打开这个特性生成所有你的绑定类之后才能使用增量编译。但是,在 Android 插件版本3.2中适合之前版本生成的绑定类兼容的。新的编译器在版本3.2中是默认打开的。

当你打开新的数据绑定编译器之后以下行为改变就生效了:

  • Android Gradle 插件在您编译你的托管代码之前为你的布局生成绑定类。
  • 如果你的布局在不止一个目标资源配置中被包含,数据绑定库使用 Android.view.View 作为共享相同资源id但不是相同视图类型的所有视图的视图类型。
  • 库模块的绑定类是被编译打包金对应的 Android 压缩文件的。依赖于这些库模块的 App 模块不再需要生成绑定类。
  • 模块的绑定适配器不在改变模块依赖的适配器的行为。绑定适配器只影响它自己所属模块以及使用这个模块的代码。
非典型前端coder wechat
想要随时Follow我的最新博客,可扫码关注我的公众号