Ошибка привязки данных TypeConverter в котлине - PullRequest
0 голосов
/ 28 мая 2018

Я использую TypeConverter в некоторых моих привязках данных.Проблема в том, что для этого требуются статические функции, и когда я конвертирую его в Kotlin, он переходит в сопутствующий объект, и процессор привязки данных не может отследить это изменение.

Я получаю следующую ошибку:

java.lang.IllegalStateException: Обязательный DataBindingComponent является нулевым в классе ListMainBinding.BindingAdapter в com.noisyninja.androidlistpoc.model.DataConverter.Companion не является статическим и требует использования объекта, полученного из DataBindingComponent.Если вы не используете метод инфляции, принимающий DataBindingComponent, используйте DataBindingUtil.setDefaultComponent или сделайте все методы BindingAdapter статическими.at android.databinding.ViewDataBinding.ensureBindingComponentIsNotNull (ViewDataBinding.java:554)

Как заставить его распознавать статические аннотированные методы @TypeConverter в сопутствующем объекте

1 Ответ

0 голосов
/ 02 июня 2018

Вы можете добавить аннотацию @jvmStatic над методом Binding Adapter, примерно так:

@BindingAdapter(value = "visiblity")
@JvmStatic
fun showHide(view : View, show : Boolean){
    view.visibility = when {
        show -> View.VISIBLE
        else -> View.GONE
    }
}
...