我想让我的应用程序提供选项有黑暗主题和浅色主题给用户,应用程序的主题将成为什么用户选择。
我如何用Android Jetpack Compose实现这一点?
我一直在浏览应用主题化的Android codelabs,发现了以下代码片段:
@Composable
fun BasicsCodelabTheme(
darkTheme: Boolean = isSystemInDarkTheme(),
content: @Composable () -> Unit
) {
val colors = if (darkTheme) {
DarkColors
} else {
LightColors
}
MaterialTheme(colors = colors) {
content()
}
}
但是上面的代码是用来改变“系统”主题对应的主题,而不是用户在应用程序中选择什么。
只需将darkTheme
参数设置为用户定义的值。
如果不传递该参数,则isSystemIndarkTheme()
值只是默认值,您还可以根据需要更改此实现。
某事:
setContent {
BasicsCodelabTheme(darkTheme = true /*user choice */) {
//...
}