BindingAdapter 绑定属性 踩坑记录

319 阅读1分钟

使用BindingAdapter自定义属性

踩坑记录

  1. 添加kapt
plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
    id 'org.jetbrains.kotlin.kapt'
}
  1. 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)
        }
    }
}
  1. 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" />
  1. 常识性错误

唉,申请个网络权限。。。。真尼玛

参考 blog.csdn.net/jzman/artic…