android:visibility数据绑定中的属性值
数据绑定的采坑之旅
作者:咕魂
时间:2021年3月17日14:58:20
目录
数据绑定中的属性值
databinding用起来很方便,但是一旦碰到错误找起来非常麻烦
在控制布局或组件显示状态时,普通写法是xxx.setVisible(View.xxx)
当多个组件需要控制时会产生非常多的重复性代码,很不雅观
数据绑定很好的解决了这个问题
我们不能直接使用 字符串写法,字符串类型不匹配,没有效果或者直接报错
<!--其中display是在data中定义的String类型数据-->
android:visibility='@{""+display}'
网上很多写法是 boolean数据类型,但会发现,View下面会有红线,调用不了
<!--其中show是在data中定义的boolean类型数据-->
android:visibility='@{show?View.VISIBLE:View.GONE}'
布局文件中属性定义
仔细观察setVisiable的参数,是int类型
好,我们在data中定义int类型的数据
<!--其中show是在data中定义的int类型数据-->
<data>
<variable
name="showView"
type="int" />
</data>
//java代码中对属性修改
binding.setShowView(View.GONE);
binding.setShowView(View.VISIBLE);
运行发现,成功了
每天的调bug之路就是这么的朴实无华,虽然几分钟四行代码就能解决问题,但是数量多的时候效率太低,干嘛不花点时间把代码写的华丽一些呢?