下面的卡住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/

10-11 22:27
查看更多