@BindingAdapter не работает с библиотекой Android Kotlin - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть BindingAdapter для загрузки изображения с использованием Glide в моей библиотеке модуля

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)
}

, и я попытался использовать адаптер какэто

   <ImageView
            ...
            app:imageUrl="@{`http://pngimg.com/uploads/alfa_romeo/alfa_romeo_PNG75.png`}"
            ... />

, но я получаю

**** / ошибка привязки данных **** msg: Не удается найти установщик для атрибута 'app: imageUrl' с типом параметраjava.lang.String on android.widget.ImageView.

Странная вещь, когда я конвертирую BindingAdapter в Java из Kotlin, это работает.

public class ImageViewBindingAdapter {

    @BindingAdapter("imageUrl")
    public static void setImageUrl(ImageView view, String url) {
        Glide.with(view)
                .load(url)
                .into(view);
    }
}

ПРИМЕЧАНИЕ. Эта проблема существует только с модулем library.Модуль приложения прекрасно работает с файлом Kotlin.

Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 26 апреля 2019

Дублировано: https://stackoverflow.com/a/52668004/1607169

TL; DR:

apply plugin: 'kotlin-kapt'
0 голосов
/ 13 февраля 2019
@BindingAdapter("imageUrl") 

вместо

@BindingAdapter("app:imageUrl")
...