現在我正在學習一個教程,我正在開發一個簡單的游戲應用程式,試圖理解和使用 MVVM 應用程式架構。在我的 ViewModel 類中,我有一個包含玩家分數的欄位。
score 變數宣告如下:
private val _score = MutableLiveData<Int>()
val score: LiveData<Int>
get() = _score
現在,在我的 UI Controller 類中,我觀察這樣的分數:
viewModel.score.observe(this, Observer { newScore ->
binding.scoreText.text = newScore.toString()
})
所以,我的問題是為什么我需要第二次得分宣告?我不能只有一個
val score = MutableLiveData<Int>()
并像上面一樣觀察它?我試過了,它有效。
uj5u.com熱心網友回復:
它會起作用。這樣做的目的是確保對該變數的更改僅發生在一個地方,即您的 ViewModel。這只是人們遵循的一種模式,可以讓您更輕松地除錯并確保您的應用程式/視圖的狀態正確。我在這里找到了來自 Google 的一個來源,盡管我確定還有更多
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/313479.html
