gpt4 book ai didi

android - 我可以将 View 作为 Android 上数据绑定(bind) BindingAdapter 的输入吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:04:15 25 4
gpt4 key购买 nike

我想在 ProgressBarWebView 之间建立关系 在 XML 中是这样的:

    <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}"/>

关于android - 我可以将 View 作为 Android 上数据绑定(bind) BindingAdapter 的输入吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40400403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com