下面的获取卡住的imageview数据bindig是我的coustom适配器和Imageview。我指 这是[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}"
/>
答案 0 :(得分:4)
您可以尝试在build.gradle(应用程序)文件中添加插件
apply plugin: 'kotlin-kapt'
答案 1 :(得分:2)
这是正常错误,因为类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}"
/>
答案 2 :(得分:0)
在模型类中编写以下代码
companion object DataBindingAdapter {
@BindingAdapter("bind:image_url")
@JvmStatic
fun loadImage(imageView: ImageView, image_url: String) {
Picasso.get().load(image_url).fit()
.placeholder(R.mipmap.ic_launcher)
.error(R.mipmap.ic_launcher)
.into(imageView) }
}
在XML中编写以下代码
<ImageView
android:id="@+id/movie_image"
android:layout_width="100dp"
android:layout_height="100dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.027"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:image_url="@{movieList.component5()}"/>
答案 3 :(得分:0)
我刚从
更改app:srcCompat
到
android:src
就我而言,将其与数据绑定一起使用。现在可以正常工作。希望这会有所帮助。
旧代码
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:textSize="16sp"
android:fontFamily="@font/avenir_roman"
android:textColor="@color/textColor"
app:srcCompat="@{model.image}"/>
新代码
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:textSize="16sp"
android:fontFamily="@font/avenir_roman"
android:textColor="@color/textColor"
android:src="@{model.image}"/>