我试图通过自定义BindingAdapters使数据绑定在Android Studio中工作。
我已经定义了以下BindingAdapter来设置图像:
@BindingAdapter("app:iconImage")
@JvmStatic fun setIconImage(view: ImageView, cool: Boolean){
view.setImageDrawable(determineImage(cool, view.context))
}
但是,这在构建项目时会引发以下错误:
****/ data binding error ****msg:Cannot find the setter for attribute
'app:iconImage' with parameter type androidx.databinding.ObservableBoolean
on android.widget.ImageView.
这是我的imageview的xml:
<ImageView
android:layout_height="100dp"
android:layout_width="100dp"
tools:srcCompat="@drawable/favorite"
app:iconImage="@{myModel.cool}"
app:imageRotation="@{myModel.stars}"
android:id="@+id/imageView" app:layout_constraintEnd_toEndOf="parent" android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp" app:layout_constraintTop_toBottomOf="@+id/ratingBar"/>
我已经尝试将'cool'参数的参数类型更改为ObservableBoolean,但无济于事。
答案 0 :(得分:0)
您从ViewModel传递的cool
参数的类型为androidx.databinding.ObservableBoolean
,它应该为Boolean
或LiveData<Boolean>