Rac*_*eyT 11 kotlin android-jetpack-compose
我正在使用 jetpack compose 为我的应用程序制作一个主题,我有这个:
@Composable
fun MyTheme(content: @Composable () -> Unit) {
val colors = lightColors(
primary = CustomColors.Custom1,
primaryVariant = CustomColors.Custom2,
onPrimary = Color.White,
background = Color.White,
secondary = CustomColors.Custom2
)
MaterialTheme(colors = colors, content = content)
}
object CustomColors{
val Custom1 = Color(0xEF119335)
val Custom2= Color(0xAA892335)
}
Run Code Online (Sandbox Code Playgroud)
问题是,当我添加时secondary = CustomColors.Custom2,我收到错误onPrimary = Color.White。错误是这样的:
给定背景错误的“开启”颜色冲突
Phi*_*hov 14
Compose源代码中的错误描述
具有相同值的背景颜色应具有相同的“on”颜色
在材质颜色系统中,背景颜色具有相应的“on”颜色,用于组件内的内容颜色。例如,彩色按钮
primary将包含onPrimary文本。因此,重要的是onColor给定的颜色值只有一种可能,否则无法知道组件内应使用哪种“on”颜色。要解决此问题,可以对相同的背景颜色使用相同的“on”颜色,或者对每个“on”颜色使用不同的背景颜色。
在您的情况下,您同时拥有primaryVariant和secondary设置为CustomColors.Custom2,这意味着相应的背景颜色也应该相同。
默认onSecondary颜色是Color.Black,并且onPrimary您已经指定了Color.White,这就是编译器不高兴的原因。
您可以通过为和指定onSecondary = Color.White或选择不同的颜色来解决此问题。primaryVariantsecondary
如果在这个解释之后您仍然想使用这些确切的颜色,您可以使用@SuppressLint("ConflictingOnColor"): 来静音此警告,但某些系统或材质元素可能看起来不太好。
| 归档时间: |
|
| 查看次数: |
3226 次 |
| 最近记录: |