这必须是最基本的问题,但经过一整天的阅读教程和文档here后,我似乎无法理解将这些方法放在何处。没有一个指南提到放置这个东西的地方,只是提到在静态方法上使用注释。什么静态方法?任何静态方法都可以,无论什么类?什么是好习惯?创建一个CustomBinding类来托管所有这些静态方法?
只要我的方法有一个BindingAdapter注释并且第一个参数是一个View,它会起作用吗?
我假设第一个参数是View类型我可以将绑定属性放在任何类型的视图上,它会触发方法吗?因此,如果我有特定的视图说EditText,这是否意味着只有在布局文件的EditText视图中找到属性时才调用该方法?
答案 0 :(得分:22)
在浏览互联网后,我终于找到了其中一位开发人员的信息。我希望他们能够更清楚地了解文档中的基础知识。
绑定适配器是用于执行此操作的任何类中的带注释的方法。通常,您可以根据目标视图类型将适配器组织到[-a]类中。
这显然意味着在编译时,任何具有注释BindingAdapter的类中的所有方法都将生成BindingAdapter。
答案 1 :(得分:3)
您将它放在模型类中。
示例:
XML:
<data>
<variable
name="item"
type="com.yourpackage.Model"/>
</data>
......
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@{item.resId}"/>
型号:
public class Model {
@DrawableRes
private final int resId;
public Model(int resId) {
this.resId = resId;
}
public int getResId() {
return resId;
}
@BindingAdapter ("android:src")
public static void setImageResource(ImageView imageView, int resource){
imageView.setImageResource(resource);
}
}