官网介绍,DataBinding是用于将数据的和视图绑定在一起的支持库,特点是只需要在视图定义的xml中编写绑定信息,减少在代码中的视图于数据的交互逻辑。
这样可以分离数据和视图,减少这两个模块在代码层面上的耦合。
启用功能
在项目的build.gradle中添加如下代码即可:
android {
...
dataBinding {
enabled = true
}
}
常见问题:
- DSL element ‘android.dataBinding.enabled’ is obsolete and has been replaced with ‘android.buildFeatures.dataBinding’.参考:https://blog.youkuaiyun.com/qq_40533422/article/details/106838495
android { ... buildFeatures { dataBinding = true } }
- If you plan to use data binding in a Kotlin project, you should apply the kotlin-kapt plugin. 如果是使用Kotlin开发需要启用Kotlin插件,不然可能会有莫名其妙的问题。
plugins { ... id 'kotlin-kapt' }
基础的绑定用法
更详细的用法参考官网的布局和绑定表达式,基础绑定用法示例:
const val TAG = "databinding"
class MainActivity : AppCompatActivity() , View.OnClickListener{
lateinit var activityMainBinding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
activityMainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main)
activityMainBinding.aty = this
activityMainBinding.data = SimpleData("Jack")
}
override</