1 min readJul 17, 2020
It can be, just you have to use them carefully because these fields initialize through the onCreate step:
protected lateinit var binding: VB
private set
protected lateinit var viewModel: VM
private set
here is another approach:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this, layoutRes)
viewModel = ViewModelProviders.of(this, viewModelFactory).get(viewModelClass)
binding.setVariable(BR.viewModel, viewModel)
binding.executePendingBindings()
subscribeToViewModel(viewModel)
}open fun subscribeToViewModel(viewModel: VM) {
//Here you can to do something related to baseViewModel
}
then you can override subscribeToViewModel in child