Компонент DataBinding не преобразуется в объект - PullRequest
0 голосов
/ 28 июня 2019

Я пытаюсь связать visibility из Cardview с условием на основе boolean из модели представления, используя databinding.

Но я получаю ошибку привязки данных

Я пытался использовать привязку данных и обрабатывать visibility внутри самого xml. Я также пытался обработать visibility программно из фрагмента. Но оба примера терпят неудачу

<variable name="vm"
                  type="packageName.ui.viewmodels.DashHomeViewModel"/>

android:visibility="@{vm.showQRCard == true ? View.VISIBLE : View.GONE}"
val binder = DataBindingUtil
.inflate(inflater, R.layout.fragment_dash_home, container, false)
binder.vm = viewModel

Я получаю это сообщение об ошибке.

ошибка: конструктор FragmentDashHomeBinding в классе FragmentDashHomeBinding не может быть применен к заданным типам; супер (bindingComponent, root, 2 ^ Обязательно: объект, представление, int, AppBarLayout, LinearLayout, LinearLayout, ImageView, SwipeRefreshLayout, панель инструментов, CircleImageView, TextView, TextView, TextView, FrameLayout, FrameLayout, FrameLayout, FrameLayout найдено: DataBindingComponent, View, int, AppBarLayout, LinearLayout, LinearLayout, ImageView, ImageView, SwipeRefreshLayout, панель инструментов, CircleImageView, TextView, TextView, TextView, TextView, FrameLayout, FrameLayout, FrameLayout, FrameLayout причина: фактические и формальные списки аргументов различаются по длине

Из этой ошибки я понимаю, что ожидается Object, но DataBindingComponent передается, но DataBindingComponent автоматически преобразуется в object, чего в данном случае не происходит. Я не знаю причину этого.

Это происходит в данном конкретном случае только потому, что аналогичный код в других фрагментах для наглядности работает отлично.

1 Ответ

0 голосов
/ 29 июня 2019

Я не знаю почему, но когда я попытался запустить свой код сегодня, он работал отлично. Вчера я пытался очистить код и сделать кеш недействительным и перезапустить, но он не работал.

...