android - 为什么我可以使用 android:background="@{!aHomeViewModel.isHaveRecord?#FFFFF:#F3F3F8}" 绑定数据?
问题描述
我在 Android Studio 的布局文件 XML 中使用 LiveData,代码 A 和代码运行良好。
但是Code C无法编译,我该如何解决?
错误信息
预期,得到'#'
代码 A
<androidx.recyclerview.widget.RecyclerView
...
android:visibility="@{aHomeViewModel.isHaveRecord? View.VISIBLE: View.GONE}"
/>
代码 B
<androidx.recyclerview.widget.RecyclerView
...
android:background="#F3F3F8"
/>
代码 C
<androidx.recyclerview.widget.RecyclerView
...
android:background="@{!aHomeViewModel.isHaveRecord? #FFFFFF: #F3F3F8}"
/>
解决方案
颜色.xml
<resources>
<color name="colorOne">#f3f3f8</color>
<color name="colorTwo">#ffffff</color>
</resources>
然后在你的 xml 布局中
android:background="@{!aHomeViewModel.isHaveRecord ? @color/colorOne : @color/colorTwo }">
推荐阅读
- css - 当 @include 一个 mixin 时,它引用了一个之前传递的变量
- python - 如何拉伸y轴
- java - 通过变量中的数字更改小数位 - JAVA
- xamarin - 无法将按钮添加到已创建的 FlexLayout
- python - 从本地主机移植我的烧瓶应用程序时无法弄清楚它有什么问题
- android - Chat Android - Firebase,同步延迟问题
- web-scraping - 带有 .NET Core 3.1 的 HtmlAgilityPack:UTF-8,text/html' 不是受支持的编码名称
- momentjs - moment.js 日期时间添加中的无效日期
- php - 如何正确找到匹配的 php.ini 文件
- javascript - 我的 if else 语句未按预期工作-所有语句的 innerHTML 保持不变