android - 带有数据绑定的xml中的三元条件问题
问题描述
我在这个按钮周围有以下两种情况,其中一些参数是由数据绑定设置的,我发现问题是关于具有真假结果顺序的三元运算。
<Button
android:id="@+id/tbIbArrowBack"
android:layout_width="@dimen/extra_large_size_32"
android:layout_height="@dimen/extra_large_size_32"
android:layout_marginStart="@dimen/activity_default_medium_margin"
android:background="@drawable/ic_arrow_back_white_24dp"
android:onClick="@{() -> manager.onClick()}"
android:visibility="@{manager.showBackButton ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:visibility="visible" />
- 此代码不会编译:
android:background="@{manager.backButtonColor == 0 ? manager.backButtonColor: @drawable/ic_arrow_back_white_24dp,default=@drawable/ic_arrow_back_white_24dp}
- 这段代码编译:
android:background="@{manager.backButtonColor != 0 ? @drawable/ic_arrow_back_white_24dp : manager.backButtonColor, default=@drawable/ic_arrow_back_white_24dp}"
第 1 项和第 2 项是我尝试制作可自定义背景的方式。当@drawable/ic_arrow_back_white_24dp
处于三元运算的第二位置时它不会工作,但是当它处于三元运算的第一位置时它会起作用。有人可以向我解释为什么 1 不会编译吗?
解决方案
“manager.backButtonColor”的数据类型是什么?我认为您正在使用 2 种不同的数据类型进行绑定。
推荐阅读
- java - 变量名中带有“和”的 JPA 查询
- php - Symfony4:收到邮件的解码过程不起作用
- asp.net-core - 主服务器与一组从服务器合作。最佳实践
- java - 在没有 Swing UI 的情况下如何启动引擎来解决我的问题?
- date - 使用带格式的 day()-formula 时错误的日期 - PowerBI
- angular - 使用 Angular 路由器的模块延迟加载
- ruby-on-rails - 如何从rails中的国家下拉列表中将美国列为首选?
- javascript - 重构嵌套循环以获得更好的性能
- java - 从 Java 调用 Kotlin 伴侣 null
- html - Shopify Curreny Switcher 将重定向到另一个商店 url