В настоящее время привязка данных в 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
}