Android 属性委托必须具有';getValue(Nothing?、KProperty*>;)&x27;方法

Android 属性委托必须具有';getValue(Nothing?、KProperty*>;)&x27;方法,android,state,android-jetpack-compose,Android,State,Android Jetpack Compose,我正试图根据用户的选择设置我的应用程序的主题。它可以是黑暗主题,也可以是光明主题 我已将viewModel创建为: class ThemeViewModel(application: Application) : AndroidViewModel(application) { private val _darkMode = MutableLiveData<Boolean>(true) val darkMode : LiveData<Boolean>

我正试图根据用户的选择设置我的应用程序的主题。它可以是黑暗主题,也可以是光明主题

我已将viewModel创建为:

class ThemeViewModel(application: Application) : AndroidViewModel(application) {
    private val _darkMode = MutableLiveData<Boolean>(true)
    val darkMode : LiveData<Boolean>
        get() = _darkMode


    fun setDarkMode(isDarkMode:Boolean){
        _darkMode.value = isDarkMode
    }

    fun getDarkMode():Boolean = _darkMode.value!!

}
}

我使用setContent作为:

setContent {
  MyApp {
    val doDark: Boolean by 
    themeViewModel.darkMode.observeAsState(Boolean) //this line gives error

    VoodleeTheme(darkTheme = doDark) {
    ProgressNavigation(themeViewModel)
        }
    }
}
请帮我解决这个问题。

添加

import androidx.compose.runtime.getValue
这是
MutableState
的扩展函数,它实现了
by
val
中使用
的要求通过使用以下方法解决:

 val doDark: State<Boolean> = themeViewModel.darkMode.observeAsState(initial = false)

我已经导入了。但它表明此导入未使用。如果这修复了编译器错误,则IDE报告此导入未使用是错误的。
 val doDark: State<Boolean> = themeViewModel.darkMode.observeAsState(initial = false)
val doDark: Boolean by themeViewModel.darkMode.observeAsState(Boolean)