通过 ViewModel 更改视图

Change view via ViewModel

我是 MVVM 的新手。我试图找出从 ViewModel 更改视图的最简单方法。在片段部分,我导航到下一个片段

  fun nextFragment(){
    findNavController().navigate(R.id.action_memory_to_memoryEnd)
}

但我无法从 ViewModel 调用它。据我所知,这甚至是不可能的,它破坏了 ViewModel 的概念。

我想在 ViewModel 中的这个条件为真时调用 fun nextFragment()

if (listOfCheckedButtonsId.size >= 18){
    Memory.endGame()
}

是否有任何简单的方法可以根据 ViewModel 中的值更改视图?

多亏了高尔基的回应,我才知道该怎么做。

在片段中我创建了观察者

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