Variables
您可以在data元素中使用多个variable元素。每个variable元素描述一个属性,该属性可以在布局上设置,以便在布局文件中的绑定表达式中使用。以下示例声明了user、image和note变量:
<data>
<import type="android.graphics.drawable.Drawable"/>
<variable name="user" type="com.example.User"/>
<variable name="image" type="Drawable"/>
<variable name="note" type="String"/>
</data>
变量类型在编译时进行检查,因此如果变量实现了Observable或是一个可观察的集合,这是可以通过反射得知的。如果变量是没有实现Observable接口的基类或接口,则不观察变量。
当各种配置(例如,横向或纵向)有不同的布局文件时,变量会组合在一起,这些布局文件之间不得存在冲突的变量定义。
生成的绑定类为每个描述的变量都添加了一个setter和getter。变量会被设置为默认值,直到调用setter为止——引用类型为null,int类型为0,布尔值为false,等等。
编译器会自动生成一个名为context的特殊变量,以便根据需要在绑定表达式中使用。context的值是根View的getContext()方法返回的context对象。如果你在data中申明了一个名为context的Context,那么自动生成的context的值将被您显示声明的变量覆盖。
网友评论