В настоящее время привязка данных в Android поддерживает следующие справочные ресурсы (согласно руководству по привязке данных): @array, @color, @int, @dimen, @string..., который даст ссылочные значения в качестве аргументов в статическом методе @BindingAdapter.
Например:
макет /web _view.xml
<WebView
app:htmlTextColor="@{@color/colorText}"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Bindings.java
@BindingAdapter({"bind:htmlTextColor"})
public static void setHtml(WebView webView, int textColor) {
// binding logic
}
Но с темами и стилями, чаще всего я использую ресурс атрибута, например. ?android:attr/textColorPrimary, чем a @color. Для таких случаев, как бы выглядел синтаксис привязки "@{}"? В настоящее время это то, как я заставляю его работать, но, может быть, есть лучший способ?
макет /web _view.xml
<WebView
app:htmlTextColor="@{android.R.attr.textColorPrimary}"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Bindings.java
@BindingAdapter({"bind:htmlTextColor"})
public static void setHtml(WebView webView, int textColorAttr) {
// binding logic
}