Quedarse atascado imageview databindig a continuación son mi adaptador personalizado e Imageview. Me refiero a esto [https://stackoverflow.com/questions/40188894/cannot-find-the-setter-for-attribute-with-parameter] pero no obtengo la solución. ¿Alguien puede ayudarme? Gracias.
@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}" />¿Puedes intentar agregar el complemento en tu archivo build.gradle (aplicación)?
apply plugin: 'kotlin-kapt'Este es un error normal porque la clase ImageView no contiene un método setImageUrl , por lo que debe solucionarlo creando una clase que extends ImageView y contenga un método llamado setImageUrl que toma una String como parámetro y establece la imagen dentro de eso. método usando la biblioteca de Picasso :
public class MyImageView extends ImageView { // ... here is the constructors public void setImageUrl(String url) { Picasso.get().load(url).into(this); } }y después de eso puedes usarlo en el xml así:
<com.yourPackage.MyImageView android:id="@+id/circleImageView" android:layout_width="100dp" android:layout_height="100dp" app:image_url="@{abc.picture.thumbnail}" />acabo de cambiar de
aplicación: srcCompat
para
androide:src
en mi caso, cuando lo uso junto con el enlace de datos. Funciona bien ahora. Espero que esto ayude.
CÓDIGO ANTIGUO
<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}"/>NUEVO CÓDIGO
<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}"/>