android - 带有列表的 BindingAdapter
问题描述
我想使用带List
参数的 BindingAdapter,但是当我尝试编译它时,它会抛出这个错误,
找不到接受参数类型“java.util.List<Alert>”的 <androidx.cardview.widget.CardView app:setVisiblityByList> 的设置器
我的方法:
@BindingAdapter("setVisibilityByList")
fun setVisibilityByList(view: View, l: List<*>?) {
if (l?.isNotEmpty() == true) {
view.visibility = View.VISIBLE
} else {
view.visibility = View.GONE
}
}
我的 XML:
<androidx.cardview.widget.CardView
android:id="@+id/card_view_alert"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_width="match_parent"
android:visibility="gone"
app:cardBackgroundColor="#77000000"
app:cardCornerRadius="10dp"
app:cardElevation="0dp"
app:contentPadding="5dp"
app:setVisiblityByList="@{locationAndWeather.alerts}">
我也尝试过fun setVisiblityByList(view: View, l: List<Alert>?)
同样的结果。这似乎是Java的类型擦除引起的问题。有什么办法可以让它工作吗?
解决方案
推荐阅读
- javascript - Load More dispatch a function for render redux fields in component Error fields is undefined
- javascript - 如何将对象列表数组合并为单个数组
- css - 为什么 ::first-letter 中的文本装饰不能级联 ::first-line 中的文本装饰?
- json - Sharepoint在线列表用json指定列宽行高
- swift - 货币格式化程序:尊重区域设置偏好,但始终将货币代码向右移动 - 简化代码
- lotus-domino - Lotus Domino Designer - 对话框列表公式 - 如何按字母顺序显示选项?
- jquery - jquery bootstrapValidator:多个输入值的总和,如果不等于其他输入字段,则禁用提交按钮
- android - 强制应用程序为 64 位设备运行 32 位架构?
- python-3.x - python3中奇怪的多继承
- javascript - 为什么函数声明中的常量声明不会引发错误?