如何解决通过 ViewModel 更改视图
我是 MVVM 的新手。我试图找出从 ViewModel 更改视图的最简单方法。在片段部分,我导航到下一个片段
fun nextFragment(){
findNavController().navigate(R.id.action_memory_to_memoryEnd)
}
但我不能从 ViewModel 调用它。 AFAIK 它甚至是不可能的,它破坏了 ViewModel 的概念。
当 ViewModel 中的此条件为 True 时,我想调用 fun nextFragment()
if (listOfCheckedButtonsId.size >= 18){
Memory.endGame()
}
有没有什么简单的方法可以根据 ViewModel 中的值更改视图?
解决方法
多亏了高尔基的回应,我才知道该怎么做。
在 Fragment 中我创建了观察者
sharedViewModel.changeView.observe(viewLifecycleOwner,Observer<Boolean> { hasFinished ->
if (hasFinished) nextFragment()
})
我在 ViewModel 中创建了 changeView 变量。什么时候
var changeView = MutableLiveData<Boolean>()
改为true,观察者调用函数。
来源: https://developer.android.com/codelabs/kotlin-android-training-live-data#6
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。