sty*_*972 6 android kotlin android-databinding android-architecture-components
我尝试设置visibility与src一个的ImageView使用数据绑定。我不知道为什么会出现这个错误,我真的相信这在某一时刻有效,但我可能是错的。
布局:
<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}" />
Run Code Online (Sandbox Code Playgroud)
数据类
@Parcelize
data class SomethingViewData(val iconResource: Int,
val iconVisibility: Boolean) : Parcelable
Run Code Online (Sandbox Code Playgroud)
错误信息:
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].
Run Code Online (Sandbox Code Playgroud)
这是什么意思,我该如何解决?
gre*_*dev 35
在我的情况下,缺少右括号导致此错误为我弹出 - 我有:
android:visibility="@{moment.state == State.COMPLETE ? View.GONE : View.VISIBLE"
Run Code Online (Sandbox Code Playgroud)
代替:
android:visibility="@{moment.state == State.COMPLETE ? View.GONE : View.VISIBLE}"
Run Code Online (Sandbox Code Playgroud)
小智 14
我遇到了同样的错误并在本网站的帮助下解决了它:https : //codelabs.developers.google.com/codelabs/android-databinding/#2
我需要将我的 ConstraintLayout 转换为数据绑定布局,如本网站的这张图片所示:

也许这会帮助某人!
sty*_*972 11
哇,所以,不知何故dataBinding { enabled = true }从我的应用程序模块 build.gradle 文件中删除了。重新添加它,一切都像以前一样。
| 归档时间: |
|
| 查看次数: |
6034 次 |
| 最近记录: |