BindingAdapers 共享参数

BindingAdapers share parameters

我正在编写一些 BindingAdapters,我有两个适配器需要知道相同的值(两者都用于相同的视图)。所以我尝试了这个但没有成功:

@BindingAdapter({"param1", "param2"})
@BindingAdapter({"param3", "param2"})

这不可能吗?在编译器可以为第二个绑定(在同一个 View 实例上)创建代码之前,似乎在某种程度上 param2 丢失了。

问题:这种尝试使用 BindingAdapters 的方法是不是非常错误?

EIDT:这就是我绑定视图的方式:

 <TextView
           android:layout_width="0dp"
           android:layout_height="wrap_content"
           app:param1="@{...}"
           app:param2="@{...}"
           app:param3="@{...}"
/>

而且我希望它匹配 运行 两个绑定适配器。现在看文档好像每个参数只能用于一次匹配

如果我对你的问题的理解正确,你应该能够通过为所有三个参数定义一个绑定适配器并将其委托给其他方法来处理你的问题。像这样,您还可以在未设置参数对时绑定可用的参数对。

@BindingAdapter({"param1", "param2", "param3"})
public static void bind123(TextView view, String param1, String param2, String param3) {
    bind12(param1, param2);
    bind23(param2, param3);
}

@BindingAdapter({"param1", "param2"})
public static void bind12(TextView view, String param1, String param2) { ... }

@BindingAdapter({"param2", "param3"})
public static void bind23(TextView view, String param2, String param3) { ... }