Раньше я создавал DataBindingAdapter
для создания пользовательских атрибутов xml в привязке данных.
object DataBindingAdapter {
@BindingAdapter("android:src")
fun setImageByRes(imageView: ImageView, @DrawableRes resId: Int) {
imageView.setImageResource(resId)
}
}
Он хорошо работал на Java. Но не работает в kotlin.
Насколько я понимаю, объект в kotlin похож на статический метод Java. Но он не работает в привязке данных.
java.lang.IllegalStateException: Required DataBindingComponent имеет значение null в классе FragmentBottomBarBinding. BindingAdapter в acr.browser.lightning.utils.DataBindingAdapter не является статическим и требует использования объекта, полученного из DataBindingComponent. Если вы не используете метод инфляции, использующий DataBindingComponent, используйте DataBindingUtil.setDefaultComponent или сделайте все методы BindingAdapter статическими.
@JvmStatic
аннотацию наsetImageByRes
. - person Moinkhan   schedule 16.08.2018