Jetpack Compose 使用 Material 从 Material 主题获取浅色与深色模式 3
Jetpack Compose Getting Light vs Dark Mode from MaterialTheme Using Material 3
使用 Jetpack Compose,使用 Material 2,您可以使用以下内容轻松查看主题是否处于轻量模式
val light = MaterialTheme.colors.isLight
使用Material3,没看到这个能力。有没有办法用 Material 3 主题来做到这一点?
在 JetpackCompose 中,您可以使用此方法 returns 如果是否启用亮/暗模式
isSystemInDarkTheme()
然后在你的代码中
if (isSystemInDarkTheme()){} \Dark mode enabled
else {} //Light mode enabled
找到解决办法。 Compose 中的 Color
有一个内置方法 luminance
returns 相对亮度作为 0 和 1 之间的浮点数。我为 ColorScheme
写了一个扩展函数 returns 如果背景亮度大于 0.5,则为真。
@Composable
fun ColorScheme.isLight() = this.background.luminance() > 0.5
用作:
val isLight = MaterialTheme.colorScheme.isLight()
现在系统是否处于深色模式并不重要,重要的是主题。
使用 Jetpack Compose,使用 Material 2,您可以使用以下内容轻松查看主题是否处于轻量模式
val light = MaterialTheme.colors.isLight
使用Material3,没看到这个能力。有没有办法用 Material 3 主题来做到这一点?
在 JetpackCompose 中,您可以使用此方法 returns 如果是否启用亮/暗模式
isSystemInDarkTheme()
然后在你的代码中
if (isSystemInDarkTheme()){} \Dark mode enabled
else {} //Light mode enabled
找到解决办法。 Compose 中的 Color
有一个内置方法 luminance
returns 相对亮度作为 0 和 1 之间的浮点数。我为 ColorScheme
写了一个扩展函数 returns 如果背景亮度大于 0.5,则为真。
@Composable
fun ColorScheme.isLight() = this.background.luminance() > 0.5
用作:
val isLight = MaterialTheme.colorScheme.isLight()
现在系统是否处于深色模式并不重要,重要的是主题。