У меня была другая проблема. Возможно, это не решение вашей проблемы, но, возможно, это принесет пользу другим. Что я сделал плюс, так это добавил заполнитель и ошибку, которую можно нарисовать, а также к моей функции загрузки изображения, например:
@JvmStatic
@BindingAdapter("imageUrl", "error", "placeholder")
fun ImageView.setImageFromUrl(imageUrl: String, error: Drawable?, placeholder: Drawable?) {
Picasso.get()
.load(imageUrl)
.placeholder(placeholder
?: ContextCompat.getDrawable(context, R.drawable.ic_general_placeholder)!!)
.error(error
?: ContextCompat.getDrawable(context, R.drawable.ic_general_error)!!)
.into(this)
}
Я подумал, что ?
в конце Drawables было достаточно, и в макете я мог просто указать URL-адрес изображения с app:imageUrl
, если я не хочу указывать какие-либо конкретные ошибки и изображения-заполнители. Но я ошибался, я продолжал получать ту же ошибку, что и вы, Не могу найти сеттер... После нескольких часов очистки кеша, удаления каждой папки сборки, перезапуска студии Android несколько раз я нашел решение в предоставленном Google руководстве. . Вам нужно указать внутри @BindingAdapter
, требуются ли все атрибуты или нет. Итак, я изменил свой код следующим образом, и он сработал:
@JvmStatic
@BindingAdapter(value = ["imageUrl", "error", "placeholder"], requireAll = false)
fun ImageView.setImageFromUrl(imageUrl: String, error: Drawable?, placeholder: Drawable?) {
Picasso.get()
.load(imageUrl)
.placeholder(placeholder
?: ContextCompat.getDrawable(context, R.drawable.ic_general_placeholder)!!)
.error(error
?: ContextCompat.getDrawable(context, R.drawable.ic_general_error)!!)
.into(this)
}
person
Hampel Előd
schedule
31.05.2019
object
и добавить@JvmStatic
- person EpicPandaForce   schedule 05.10.2018