我希望在XML中建立destroy
和ProgressBar
之间的关系:
WebView
使用此代码,我可以创建一个 <ProgressBar
android:id="@+id/progressBar"/>
<WebView
android:id="@+id/wvb_webView"
app:attachedProgressBar="@{@id/progressBar}"/>
来进行这样的连线:
BindingAdapter
这很有效,但我不得不打电话给@BindingAdapter({"app:attachedProgressBar"})
public static void setAttachedProgressBar(WebView webView, @IdRes int progressBarId) {
ProgressBar progBar = (ProgressBar) DataBindingUtil.getBinding(webView).getRoot().findViewById(progressBarId);
wireStuff(webView, progBar);
}
。有没有什么方法可以重构XML和BindingAdapter直接引用findViewById
作为输入而不是ProgressBar
?
答案 0 :(得分:8)
而不是ID,直接在ProgressBar
BindingAdapter
@BindingAdapter({"app:attachedProgressBar"})
public static void setAttachedProgressBar(WebView webView, ProgressBar progBar) {
wireStuff(webView, progBar);
}
XML代码:
<ProgressBar
android:id="@+id/progressBar"/>
<WebView
android:id="@+id/wvb_webView"
app:attachedProgressBar="@{progressBar}"/>