#android #android-databinding
#Android #android-привязка к данным
Вопрос:
Я хочу, чтобы видимость моего представления зависела от поведения условия, поэтому я использую ObservableField и с помощью databinding пытаюсь изменить видимость представления, но получаю проблему типа «Идентификаторы должны иметь пользовательские типы из XML-файла. В inputType отсутствует это»
Код:
Kotlin File
var showView: ObservableField<Boolean>? = ObservableField(false)
//API call response
showView.set(true)
Layout File:
<TextView
android:id="@ id/textview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="@{viewModel.showView ? View.VISIBLE : View.GONE}"/>
Как применить привязку к данным с помощью Observablefield типа boolean? Я также использовал его для строкового текста, и он работает, но не работает с логическим условным выражением.
Ответ №1:
Я не уверен, так ли это здесь, но это сообщение об ошибке обычно отображается, когда вы ссылаетесь на тип в ваших выражениях привязки, который не был объявлен в <data>
разделе вашего макета. Таким же образом, как вы объявляете View
тип в качестве импорта, вы должны объявить тип InputType
.
<data>
<!-- Maybe an import for InputType is missing here? -->
<import type="android.view.View" />
<variable
name="viewModel"
type="com.yourpackage.YourViewModel"/>
</data>
Комментарии:
1. Нет, я декализировал ViewModel в разделе <данные>
2. Но проблема здесь не в viewmodel. Проблема, похоже, в том, что вызываемый тип
InputType
отсутствует в вашем импорте. Вы уверены, что объявили для него допустимый импорт?3. О, да, понял. Я забыл импортировать inputType, такая маленькая ошибка. спасибо за ответ