自定义View布尔属性的数据绑定不起作用

时间:2019-10-02 10:14:52

标签: android android-view android-databinding

我有一个具有read属性的自定义视图,该属性在xml中定义如下:

<attr name="read" format="boolean" />

我在自定义视图的init方法中获得了此属性:

read = getBoolean(R.styleable.CustomCardView_read, true)

这将设置视图的以下属性:

var read: Boolean = false
    set(value) {
        field = value
        card_read_stripe.visibility = if (value) View.GONE else View.VISIBLE
    }

使用此自定义视图时,我像这样绑定read属性:

app:read="@{!object.fresh}"

我的问题是,我总是从样式化属性中获得true,但从数据绑定方面却没有任何值。 read的setter仅使用attrs.xml属性的默认值调用一次。自定义视图还具有一些通过数据绑定绑定的字符串属性,并且这些字符串属性以完全相同的方式实现,并且可以正常工作。这可能是什么原因?

1 个答案:

答案 0 :(得分:0)

错误似乎是数据绑定编译器未以某种方式生成新代码。清理并重建了整个项目后,它又开始工作。