AndroidDataBinding运算符、BindingAdapter、BindingC。。。

AndroidDataBinding运算符、BindingAdapter、BindingC。。。

2023年7月13日发(作者:)

AndroidDataBinding运算符、BindingAdapter、BindingC。。。运算符基础运算符DataBinding ⽀持在布局⽂件中使⽤以下运算符、表达式和关键字算术

+ - / * %字符串合并+逻辑&& ||⼆元& | ^⼀元

+ - ! ~移位>> >>> <<⽐较== > < >= <=InstanceofGrouping ()character, String, numeric, nullCast⽅法调⽤Field 访问Array访问 []三元?:⽬前不⽀持以下操作thissupernew显⽰泛型调⽤此外,DataBinding 还⽀持以下⼏种形式的调⽤:Null Coalescing空合并运算符

?? 会取第⼀个不为

null 的值作为返回值等价于android:text="@{ != null ? : rd}"属性控制可以通过变量值来控制 View 的属性避免空指针异常DataBinding 也会⾃动帮助我们避免空指针异常例如,如果 “@{rd}” 中 userInfo 为 null 的话,rd 会被赋值为默认值 null,⽽不会抛出空指针异常BindingAdapterdataBinding 提供了 BindingAdapter 这个注解⽤于⽀持⾃定义属性,或者是修改原有属性。注解值可以是已有的 xml 属性,例如android:src、android:text等,也可以⾃定义属性然后在 xml 中使⽤例如,对于⼀个 ImageView ,我们希望在某个变量值发⽣变化时,可以动态改变显⽰的图⽚,此时就可以通过 BindingAdapter 来实现需要先定义⼀个静态⽅法,为之添加 BindingAdapter 注解,注解值是为 ImageView 控件⾃定义的属性名,⽽该静态⽅法的两个参数可以这样来理解:当 ImageView 控件的 url 属性值发⽣变化时,dataBinding 就会将 ImageView 实例以及新的 url 值传递给 loadImage() ⽅法,从⽽可以在此动态改变 ImageView 的相关属性@BindingAdapter({"url"})public static void loadImage(ImageView view, String url) { Log.d(TAG, "loadImage url : " + url);}在 xml ⽂件中关联变量值,当中,bind 这个名称可以⾃定义

BindingAdapter 更为强⼤的⼀点是可以覆盖 Android 原先的控件属性。例如,可以设定每⼀个 Button 的⽂本都要加上后缀:“-Button”@BindingAdapter("android:text")public static void setText(Button view, String text) { t(text + "-Button");}

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信