如何在 Jetpack Compose 中使文本静音/变灰?
How to do muted / grayed text in jetpack compose?
这似乎存在于大多数 UI 框架中,以一种适用于浅色和深色主题的方式,但在这里似乎不存在。
目前我做了:
val Muted = Color.LightGray
并将其导入其他地方,但在浅色主题上看起来很糟糕。
有什么想法吗?
Compose 具有 ContentAlpha.medium
,顾名思义,用于将颜色显示为静音。
我不知道这是否是最有效的方法,但我通常这样使用它:
Text(
text = myText,
color = when {
isEnabled -> MaterialTheme.colors.myColor
else -> MaterialTheme.colors.myColor.copy(alpha = ContentAlpha.medium)
}
)
您可以将其抽象为一个扩展字段并将其添加到您的主题文件中:
val Color.muted get() = this.copy(alpha = ContentAlpha.medium)
并像这样使用它:
color = when {
isEnabled -> MaterialTheme.colors.myColor
else -> MaterialTheme.colors.myColor.muted
使用背景颜色的 Color.luminance()
值并在动态主题的情况下选择文本的灰度颜色。
使用isSystemInDarkTheme()
选择颜色结合contentColorFor()
,当我们有固定的主题系统时,
这似乎存在于大多数 UI 框架中,以一种适用于浅色和深色主题的方式,但在这里似乎不存在。
目前我做了:
val Muted = Color.LightGray
并将其导入其他地方,但在浅色主题上看起来很糟糕。
有什么想法吗?
Compose 具有 ContentAlpha.medium
,顾名思义,用于将颜色显示为静音。
我不知道这是否是最有效的方法,但我通常这样使用它:
Text(
text = myText,
color = when {
isEnabled -> MaterialTheme.colors.myColor
else -> MaterialTheme.colors.myColor.copy(alpha = ContentAlpha.medium)
}
)
您可以将其抽象为一个扩展字段并将其添加到您的主题文件中:
val Color.muted get() = this.copy(alpha = ContentAlpha.medium)
并像这样使用它:
color = when {
isEnabled -> MaterialTheme.colors.myColor
else -> MaterialTheme.colors.myColor.muted
使用背景颜色的
Color.luminance()
值并在动态主题的情况下选择文本的灰度颜色。使用
isSystemInDarkTheme()
选择颜色结合contentColorFor()
,当我们有固定的主题系统时,