我有一个不同的问题。这可能不是您问题的解决方案,但也许其他人会从中受益。我在加号中所做的是向我的加载图像函数添加一个占位符和一个可绘制的错误,如下所示:
@JvmStatic
@BindingAdapter("imageUrl", "error", "placeholder")
fun ImageView.setImageFromUrl(imageUrl: String, error: Drawable?, placeholder: Drawable?) {
Picasso.get()
.load(imageUrl)
.placeholder(placeholder
?: ContextCompat.getDrawable(context, R.drawable.ic_general_placeholder)!!)
.error(error
?: ContextCompat.getDrawable(context, R.drawable.ic_general_error)!!)
.into(this)
}
我坚持将 放在?
Drawables 的末尾就足够了,并且在布局中app:imageUrl
,如果我不想提供任何特定的错误和占位符图像,我可以只提供带有 的图像 URL。但我错了,我一直遇到和你一样的错误,找不到设置器......经过几个小时清除缓存,删除每个构建文件夹,重新启动android studio几次后,我在google提供的指南中找到了解决方案. 您需要在内部指定@BindingAdapter
是否需要所有属性。所以我像这样修改了我的代码并且它起作用了:
@JvmStatic
@BindingAdapter(value = ["imageUrl", "error", "placeholder"], requireAll = false)
fun ImageView.setImageFromUrl(imageUrl: String, error: Drawable?, placeholder: Drawable?) {
Picasso.get()
.load(imageUrl)
.placeholder(placeholder
?: ContextCompat.getDrawable(context, R.drawable.ic_general_placeholder)!!)
.error(error
?: ContextCompat.getDrawable(context, R.drawable.ic_general_error)!!)
.into(this)
}