首先,对于所有与 UI 相关的事情,您绝对应该通知 ViewModel。您可以在 ViewModel 中按如下方式定义事件。BTW _itemClickedEvent 为封装定义。
private val _itemClickedEvent = MutableLiveData<Boolean>()
var itemClickedEvent: LiveData<Boolean> = _itemClickedEvent
fun itemClickedEvent(state: Boolean) {
_itemClickedEvent.value = state
}
之后,您可以通过 viewModel 对象为您的场景调用 itemClickedEvent。
button.setOnClickListener {
viewModel.itemClickedEvent(true)
}
通过观察 LiveData,您可以进行可见性或任何其他与 UI 相关的事情,如下所示
viewModel.itemClickedEvent.observe(this, Observer {isItemClicked->
if(isItemClicked){
// Do your changes
}
})