Tengo este BindingAdapter para cargar imágenes usando Glide en mi módulo de biblioteca
import android.widget.ImageView import androidx.databinding.BindingAdapter import com.bumptech.glide.Glide @BindingAdapter("imageUrl") fun loadImage(view: ImageView, imageUrl: String) { Glide.with(view) .load(imageUrl) .into(view) }y traté de usar el adaptador así
<ImageView ... app:imageUrl="@{`http://pngimg.com/uploads/alfa_romeo/alfa_romeo_PNG75.png`}" ... />pero estoy recibiendo
****/ error de vinculación de datos ****msg: No se puede encontrar el definidor para el atributo 'app:imageUrl' con el tipo de parámetro java.lang.String en android.widget.ImageView.
Lo extraño es que cuando convierto BindingAdapter a Java desde Kotlin , funciona.
public class ImageViewBindingAdapter { @BindingAdapter("imageUrl") public static void setImageUrl(ImageView view, String url) { Glide.with(view) .load(url) .into(view); } } NOTA: Este problema solo existe con el módulo de library . El módulo de la aplicación funciona perfectamente bien con el archivo Kotlin .
Qué estoy haciendo mal ?
@BindingAdapter("imageUrl")en vez de
@BindingAdapter("app:imageUrl")tu código debería ser así
object BindUtil { @JvmStatic @BindingAdapter("app:imageUrl") fun imageUrl(view: ImageView, imageUrl: String?) { Glide.with(view) .load(imageUrl) .into(view) } }