下面的卡住imageview databindig是我的自定义适配器和Imageview。我指的是这个[https://stackoverflow.com/questions/40188894/cannot-find-the-setter-for-attribute-with-parameter],但没有得到解决方案-有人可以帮忙吗?谢谢。
@BindingAdapter("app:image_url")
fun loadImage(view: ImageView, logoUrl: String?) {
if (logoUrl == null) {
view.setImageResource(R.drawable.alert_dark_frame)
} else {
Picasso.with(view.getContext())
.load(logoUrl)
.placeholder(R.mipmap.sym_def_app_icon)
.into(view)
}
}
<data>
<import type="android.view.View" />
<variable name="abc"
type="com.example.viewmodel.Result"/>
</data>
<ImageView
android:id="@+id/circleImageView"
android:layout_width="100dp"
android:layout_height="100dp"
app:image_url="@{abc.picture.thumbnail}"
/>
最佳答案
这是正常错误,因为ImageView
类不包含方法setImageUrl
,因此您需要通过创建一个包含extends ImageView
的类并包含一个名为setImageUrl
的方法来解决该问题,该方法将String
作为参数并在该方法中设置图像使用Picasso
库:
public class MyImageView extends ImageView {
// ... here is the constructors
public void setImageUrl(String url) {
Picasso.get().load(url).into(this);
}
}
之后,您可以像下面这样在xml中使用它:
<com.yourPackage.MyImageView
android:id="@+id/circleImageView"
android:layout_width="100dp"
android:layout_height="100dp"
app:image_url="@{abc.picture.thumbnail}"
/>
关于android - ****/数据绑定(bind)错误**** android.widget.ImageView上的msg :Cannot find the setter for attribute 'app:image_url' with parameter type java. lang.String,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54168929/