在Android Studio中使用数据绑定时如何解决“找不到属性的设置器”

时间:2019-04-19 12:02:49

标签: android kotlin data-binding

我试图通过自定义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,但无济于事。

1 个答案:

答案 0 :(得分:0)

您从ViewModel传递的cool参数的类型为androidx.databinding.ObservableBoolean,它应该为BooleanLiveData<Boolean>