【发布时间】:2020-08-17 18:51:43
【问题描述】:
我正在尝试运行视图动画。当我在 TextInputEditText 中输入文本时,视图应该会消失,但出现错误:
"/app/build/generated/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>
有趣的 click() 作品。
有趣的打字()不起作用
【问题讨论】:
标签: android kotlin data-binding