我正在使用ViewModel
更新操作栏中的标题
共享视图模型
class SharedViewModel @ViewModelInject constructor(
@Assisted private val savedStateHandle: SavedStateHandle
) : ViewModel() {
val title: MutableLiveData<String> by lazy {
MutableLiveData<String>()
}
val backButton: MutableLiveData<Boolean> by lazy {
MutableLiveData<Boolean>()
}
}
MainActivity 观察者
@AndroidEntryPoint
...
sharedViewModel.title.observe(this, Observer {
supportActionBar?.title = it
})
使用下面的代码似乎在Fragment
(在调试器中检查)创建了一个新实例:
@AndroidEntryPoint
...
private val viewModel: SharedViewModel by viewModels()
但似乎以这种方式工作
val viewModel = ViewModelProvider(requireActivity()).get(SharedViewModel::class.java)
这应该以这种方式完成还是我做错了什么?
谢谢!