【发布时间】:2020-08-04 09:35:15
【问题描述】:
我正在使用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)
这是应该这样做还是我做错了什么?
谢谢!
【问题讨论】:
标签: android kotlin viewmodel dagger dagger-hilt