gpt4 book ai didi

android - 属性委托(delegate)必须有一个 'getValue(Nothing?, KProperty*>)' 方法

转载 作者:行者123 更新时间:2023-12-05 03:42:08 24 4
gpt4 key购买 nike

我正在尝试根据用户的选择来设置我的应用程序的主题。它可以是深色主题或浅色主题。

我将 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!!

}

我将主题创建为:

@Composable
fun VoodleeTheme(
darkTheme: Boolean,
content: @Composable () -> Unit
) {
MaterialTheme(
colors = if (darkTheme) DarkColors else LightColors,
content = content
)

我将 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<T> 的扩展函数实现使用 by 的要求在val .

关于android - 属性委托(delegate)必须有一个 'getValue(Nothing?, KProperty*>)' 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67372720/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com