使用BindingAdapter自定义属性
踩坑记录
- 添加kapt
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id 'org.jetbrains.kotlin.kapt'
}
- bindingAdapter的类名和函数名随意主要是 参数和注解
class ImageViewBindingAdapter {
companion object {
@BindingAdapter(value = ["app:imageUrl", "app:placeHolder"], requireAll = false)
@JvmStatic
fun setImageUrl(view: ImageView, imageurl: String, placeHolder: Drawable) {
Glide.with(view.context)
.load(imageurl)
.placeholder(placeHolder)
.transition(DrawableTransitionOptions.withCrossFade())
.into(view)
}
}
}
- xml中,最坑 要写成 @{} 这样的玩意,要不然就提示无法链接资源
<ImageView
android:id="@+id/iv_pic"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginStart="20dp"
android:layout_marginTop="20dp"
app:imageUrl="@{`https://goss.veer.com/creative/vcg/veer/800water/veer-136599950.jpg`}"
app:placeHolder="@{@drawable/gic}"
app:layout_constraintStart_toEndOf="@+id/btn_add"
app:layout_constraintTop_toTopOf="@id/btn_add" />
- 常识性错误
唉,申请个网络权限。。。。真尼玛