我有这个BindingAdapter
可以在我的库模块中使用Glide
加载图像
import android.widget.ImageView
import androidx.databinding.BindingAdapter
import com.bumptech.glide.Glide
@BindingAdapter("imageUrl")
fun loadImage(view: ImageView, imageUrl: String) {
Glide.with(view)
.load(imageUrl)
.into(view)
}
我试图使用这样的适配器
<ImageView
...
app:imageUrl="@{`http://pngimg.com/uploads/alfa_romeo/alfa_romeo_PNG75.png`}"
... />
但正在得到
**** /数据绑定错误**** msg:在android.widget.ImageView上找不到参数类型为java.lang.String的属性“ app:imageUrl”的设置器。
奇怪的是,当我将BindingAdapter
的{{1}}转换为Java
时,它起作用了。
Kotlin
注意:仅public class ImageViewBindingAdapter {
@BindingAdapter("imageUrl")
public static void setImageUrl(ImageView view, String url) {
Glide.with(view)
.load(url)
.into(view);
}
}
模块存在此问题。 App模块与library
文件完美配合。
我做错了什么?
答案 0 :(得分:1)
@BindingAdapter("imageUrl")
代替
@BindingAdapter("app:imageUrl")
答案 1 :(得分:0)
答案 2 :(得分:0)
你的代码应该是这样的
object BindUtil {
@JvmStatic
@BindingAdapter("app:imageUrl")
fun imageUrl(view: ImageView, imageUrl: String?) {
Glide.with(view)
.load(imageUrl)
.into(view)
}
}