Я пытаюсь запустить просмотр анимации. Когда я набираю текст в TextInputEditText, представление должно исчезнуть, но я получаю сообщение об ошибке:
"/ app / build / generate / source / kapt / debug /.../ MixerSimpleFragmentBindingImpl. java: 1416 : ошибка: отсутствует оператор возврата} ".
BindingAdapters.kt
@BindingAdapter("textChangedListener")
fun onTextChanged(et: EditText, callback: () -> Unit) {
et.addTextChangedListener(object : TextWatcher {
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
callback.invoke()
}
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
override fun afterTextChanged(s: Editable) {}
})
}
SimpleMixerViewModel.kt
class SimpleMixerViewModel : ViewModel() {
val isVisible: MutableLiveData<Boolean> = MutableLiveData(false)
....
fun click() {
isVisible.value = true
}
fun typing(){
isVisible.value = false
}
}
mixer_simple_fragment. xml
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable name="simpleMixerViewModel" type="....SimpleMixerViewModel"/>
</data>
....
<com.google.android.material.textfield.TextInputEditText
app:textChangedListener="@{()-> simpleMixerViewModel.typing()}"
/>
<com.google.android.material.button.MaterialButton
android:onClick="@{() -> simpleMixerViewModel.click()}"
/>
<androidx.cardview.widget.CardView
isVisible="@{simpleMixerViewModel.isVisible}">
</androidx.cardview.widget.CardView>
</layout>
забавный щелчок () работает.
забавный набор текста () не работает