我正在使用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>()
}
}
Run Code Online (Sandbox Code Playgroud)
主活动观察者
@AndroidEntryPoint
...
sharedViewModel.title.observe(this, Observer {
supportActionBar?.title = it
})
Run Code Online (Sandbox Code Playgroud)
使用下面的代码似乎创建了一个新实例Fragment(在调试器中检查):
@AndroidEntryPoint
...
private val viewModel: SharedViewModel by viewModels()
Run Code Online (Sandbox Code Playgroud)
但似乎以这种方式工作
val viewModel = ViewModelProvider(requireActivity()).get(SharedViewModel::class.java)
Run Code Online (Sandbox Code Playgroud)
这是应该这样做还是我做错了什么?
谢谢!