android - View 绑定(bind)出现错误 : incompatible with attribute android:visibility

标签 android kotlin android-databinding android-architecture-components

我正在尝试使用数据绑定(bind)设置 ImageViewvisibilitysrc 。我不知道为什么会出现这个错误,而且我确实相信这在某一时刻是有效的,但我可能是错的。

布局:

<data>
    <import type="android.view.View" />
    <import type="android.support.v4.content.ContextCompat" />
    <variable
        name="viewData"
        type="com.myapp.SomethingViewData" />
</data>
    ...
        <ImageView
            ...
            android:src="@{ContextCompat.getDrawable(context, viewData.getIconResource())}"
            android:visibility="@{viewData.getIconVisibility() ? View.VISIBLE : View.GONE}" />

数据类

@Parcelize
data class SomethingViewData(val iconResource: Int,
                             val iconVisibility: Boolean) : Parcelable

错误消息:

error: '@{ContextCompat.getDrawable(context, viewData.getIconResource())}' is incompatible with attribute android:src (attr) reference|color.   
error: '@{viewData.getIconVisibility() ? View.VISIBLE : View.GONE}' is incompatible with attribute android:visibility (attr) enum [gone=2, invisible=1, visible=0]. 

这是什么意思以及如何解决它?

最佳答案

就我而言,缺少右大括号导致出现此错误 - 我有:

android:visibility="@{moment.state == State.COMPLETE ? View.GONE : View.VISIBLE"

而不是:

android:visibility="@{moment.state == State.COMPLETE ? View.GONE : View.VISIBLE}"

关于android - View 绑定(bind)出现错误 : incompatible with attribute android:visibility,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53202846/

相关文章:

android - 键入状态 Smack 4.1

android - 发送 2 个对象模型作为 @body 改造的输入

实现数据绑定(bind)时 Android Studio 2.2 预览抛出错误

安卓数据绑定(bind)工具 : How to use a single adapter for the whole project?

java - Android dataBinding - TextView 根据 boolean 值不可见

java - 错误: method cleanCart in class Database cannot be applied to given types

android - 如何使用 Butterknife 解决 NullPointerException void com.google.android.gms.ads.AdView.loadAd(com.google.android.gms.ads.AdRequest)

android - 用户单击主页按钮后将应用程序置于最前面

kotlin - 在 Kotlin 中重写子类中的变量

postgresql - 如何通过 Kotlin Exposed ORM 使用 Postgresql 枚举类型?