我正在尝试使用数据绑定(bind)设置 ImageView
的 visibility
和 src
。我不知道为什么会出现这个错误,而且我确实相信这在某一时刻是有效的,但我可能是错的。
布局:
<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/