我想在
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}"/>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。