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之路就是这么的朴实无华,虽然几分钟四行代码就能解决问题,但是数量多的时候效率太低,干嘛不花点时间把代码写的华丽一些呢?

原文地址:https://www.cnblogs.com/guhunjun/p/android-visibility.html