BindingAdapter
методы должны быть статическими , поэтому пометка @JvmStatic
поможет в этом случае.
Но это сгенерирует 'ошибка времени компиляции' , что "методы не могут быть статичными внутри класса" и поэтому его следует переместить в объект-компаньон или именованные объекты .
В вашем случае у вас есть метод на уровне члена класса , поэтому его перемещение на сопутствующий объект поможет. Так что для MyItemViewModel.kt
создайте объект-компаньон и переместите туда метод, как показано ниже:
class MyItemViewModel{
//Some code
companion object {
@JvmStatic
@BindingAdapter("imageUrl")
fun loadImage(view: RoundedImageView, url: String) { // This methods should not have any return type, = declaration would make it return that object declaration.
Glide.with(view.context).load(url).into(view)
}
}
//Some other code
}
Примечание. Также удалите объявление метода с помощью =
. Методы привязки должны иметь тип возврата Unit
.