一.开启databinding
1.除了需要在buidl.gradle(moudle:app)中的android结构下加入
dataBinding {
enabled = true
}
还要该文件头部加入kontlin apt支持
apply plugin: 'kotlin-kapt'
dependencies中加入 databinding compiler
dependencies {
kapt 'com.android.databinding:compiler:3.0.0'
}
二.使用中遇到的问题
1.kotlin开启databinding后编译并不会自动生成 ActivityMainBinding,重启as即可
2.使用自定义属性BindingAdapter时 需要将自定义属性块写在方法外 或 新建一个kt文件
class User(firstName: String, lastName: String,url: String) : BaseObservable() {
}
@BindingAdapter("header")
fun getImage(view: ImageView, url: String) {
Log.i("url"," "+url)
view.setImageResource(R.mipmap.ic_launcher)
}
3.出现警告: Application namespace for attribute bind:header will be ignored. 只需将自定义属性中bind:去掉
//修改前
@BindingAdapter("bind:header")
//修改后
@BindingAdapter("header")
网友评论