Jetpack作曲从材料获得光明与黑暗模式主题使用材料3



使用Jetpack Compose,使用Material 2,您可以通过以下轻松查看主题是否处于灯光模式

val light = MaterialTheme.colors.isLight

使用材料3,我看不到这种能力。有没有一种方法可以用材料3主题来做到这一点?

找到了一个解决方案。Compose中的Color有一个内置的方法luminance,该方法以0和1之间的浮点形式返回相对亮度。我为ColorScheme编写了一个扩展函数,如果背景亮度大于0.5,该函数将返回true。

@Composable
fun ColorScheme.isLight() = this.background.luminance() > 0.5

将其用作:

val isLight = MaterialTheme.colorScheme.isLight()

现在,系统是否处于黑暗模式并不重要,重要的是主题。

在JetpackCompose中,如果启用或未启用,您可以使用此方法返回

isSystemInDarkTheme()

然后在你的代码

if (isSystemInDarkTheme()){} \Dark mode enabled
else {} //Light mode enabled 

最新更新