2018-03-01
Data binding 已经不是什么新技术了. 这是一个大趋势, 能让我们少写不少代码, 同时代码更加美观.
Data Binding 默认不启用, 需要配置:
android { .... dataBinding { enabled = true } }
Android Gradle Plugin 3.1.0 Canary 6 添加了一个可选的新编译器, 叫 Data Binding Compiler V2.
启用方式, 在 gradle.properties 中添加一行:
android.databinding.enableV2=true
在深入细节之前, 有必要从整体上来看下, Data Binding 是怎么回事:
图中, View Container 是视图容器, 可以是 Activity 或者 ViewGroup, 可以理解为屏幕上的一个部分.
我们要做的是在这个容器中填充一个视图, 同时为这个视图绑定数据.
这种事情在开发中在平常不过了, 使用传统的方法, 需要以下步骤:
这当中涉及到大量的胶水代码. 而使用 Data Binding 就能够省掉这些胶水代码.
回到图中, Android 的 Data Binding 是在布局中设定数据 Model 和事件响应 Handler 的.
Model 是一个 POJO, 是需要被绑定到视图上面的数据.
Handler 是一个我们定义的类, 它提供一系列方法, 布局中就能直接调用这些方法.
DataBindingUtil 处于中心位置, 将 MVVM 的各方绑定到一起.