Адаптеры привязки используются для установки пользовательских параметров для некоторых свойств ваших представлений.Наиболее распространенный вариант использования, о котором я могу думать, это установка изображения на ImageView
, где загрузка изображения в основном выполняется из потока пользовательского интерфейса.
У большинства из нас есть предпочтительная библиотека загрузки изображений для загрузки изображений.Для каждого изображения, которое вы хотите загрузить, вы должны написать код для загрузки URL-адреса с удаленного (или локального) и установить его для нашего изображения.Конечно, у вас может быть какой-то полезный метод, когда вы увидите этот шаблон в каждом месте, где у вас есть изображение.
Связывающие адаптеры делают это немного проще.Вы устанавливаете атрибут в XML, и библиотека привязки данных будет искать адаптер привязки, чтобы установить это свойство для вашего представления.Поскольку данные являются наблюдаемыми, изменения будут запускаться в представлении при каждом изменении данных.
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:imageUrl="@{data.imageUrl}"/>
@BindingAdapter("imageUrl")
public static void setImageUrl(ImageView imageView, String url) {
if (url == null) {
imageView.setImageDrawable(null);
} else {
Picasso.get().load(url).into(imageView); // replace with your fav image loading lib
}
}
doc предоставляет несколько таких примеров, в которых вы хотели бы использовать это.Эта статья Джорджа Маунта также очень четко объясняет, где и почему вы можете использовать это, если вы используете привязку данных.