Прежде всего, для всех вещей, связанных с пользовательским интерфейсом, вы должны абсолютно уведомить ViewModel.Вы можете определить событие следующим образом в ViewModel.BTW _itemClickedEvent определен для инкапсуляции.
private val _itemClickedEvent = MutableLiveData<Boolean>()
var itemClickedEvent: LiveData<Boolean> = _itemClickedEvent
fun itemClickedEvent(state: Boolean) {
_itemClickedEvent.value = state
}
После этого вы можете вызывать itemClickedEvent через объект viewModel для вашего сценария.
button.setOnClickListener {
viewModel.itemClickedEvent(true)
}
Наблюдая LiveData, вы можете сделать свою видимость или любой другой связанный пользовательский интерфейс связанным свещи, как показано ниже
viewModel.itemClickedEvent.observe(this, Observer {isItemClicked->
if(isItemClicked){
// Do your changes
}
})