我正在尝试在我的 Kotlin 项目中使用Android DataBinding Library来设置自定义属性,如下所示:
布局
<ImageView
android:id="@+id/imgView”
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_gravity="center"
android:adjustViewBounds="true"
app:imageUrl="@{segment.url}"/>
代码
class Utils {
companion object {
@BindingAdapter("bind:imageUrl")
@JvmStatic
fun loadImage(view: ImageView, url:String)
{Picasso.with(view.context).load(url).error(R.drawable.error).into(view)}
}
}
我得到的运行时错误是:
<package.Utils.Companion> 中的 BindingAdapter 不是静态的,需要使用对象从 DataBindingComponent 检索。 如果您不使用使用 DataBindingComponent 的膨胀方法,请使用 DataBindingUtil.setDefaultComponent 或使所有 BindingAdapter 方法为静态。
有什么提示可以解决它吗?
这仅适用于自定义属性。 其余的数据绑定工作正常。
onClick
一样工作,你只需要正确的SAM类/接口即可。 https://developer.android.com/reference/android/databinding/BindingAdapter.html - Stepango@JvmStatic
的使用怎么样? - IgorGanapolsky