[英]Can I have a View as input to a data binding BindingAdapter on Android?
我想在XML中建立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);
}
這有效,但讓我覺得我必須調用findViewById
。 有沒有什么方法可以重構XML和BindingAdapter直接引用ProgressBar
作為輸入而不是@IdRes int
?
而不是id,直接在BindingAdapter
傳遞ProgressBar
@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}"/>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.