Android 属性委托必须具有';getValue(Nothing?、KProperty*>;)&x27;方法
我正试图根据用户的选择设置我的应用程序的主题。它可以是黑暗主题,也可以是光明主题 我已将viewModel创建为: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>
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)