Binding Adapter дает вам довольно хорошую функцию в настройке вида. Кажется странным!
Первый . Предположим, у вас есть ImageView, в котором отображается флаг страны.
Принять: Код страны (строка)
Действие: Показать флаг страна, если код страны нулевой, сделайте ImageView GONE.
@BindingAdapter({"android:setFlag"})
public static void setFlagImageView(ImageView imageView, String currencyCode) {
Context context = imageView.getContext();
if (currencyCode != null) {
try {
Drawable d = Drawable.createFromStream(context.getAssets().open("flags/"+currencyCode.toLowerCase()+".png"), null);
imageView.setImageDrawable(d);
} catch (IOException e) {
e.printStackTrace();
}
}
else{
imageView.setVisibility(View.GONE);
}
}
Так что теперь вы можете повторно использовать этот BindinAdapter в любом другом месте.
Люди, которым нравится DataBinding, видят, что они могут уменьшить объем кода, и написать несколько логи c в xml. Вместо вспомогательных методов.
Секунда , При привязке данных вы игнорируете findViewById, потому что для вас будет создан сгенерированный файл.
Что касается производительности, я не найти в официальной документации любые признаки того, что BindingAdapter повышает производительность.