gpt4 book ai didi

kotlin - 喷气背包组合中给定背景错误的 'on' 颜色冲突

转载 作者:行者123 更新时间:2023-12-04 14:48:00 25 4
gpt4 key购买 nike

我正在使用 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)

}
问题是当我添加 secondary = CustomColors.Custom2 时, 我在 onPrimary = Color.White 中收到错误消息.错误是这样的:

Conflicting 'on' color for a given background error

最佳答案

来自 Compose 的错误描述 source code

Background colors with the same value should have the same 'on' color

In the Material color system background colors have a corresponding 'on' color which is used for the content color inside a component. For example, a button colored primary will have onPrimary text. Because of this, it is important that there is only one possible onColor for a given color value, otherwise there is no way to know which 'on' color should be used inside a component. To fix this either use the same 'on' color for identical background colors, or use a different background color for each 'on' color.


就您而言,您同时拥有 primaryVariantsecondary设置为 CustomColors.Custom2 ,这意味着相应的背景颜色也应该相同。
默认 onSecondary颜色是 Color.Black ,并为 onPrimary您已指定 Color.White ,这就是为什么编译器不高兴。
您可以通过指定 onSecondary = Color.White 来解决此问题。或为 primaryVariant 选择不同的颜色和 secondary .
如果在这个解释之后你仍然想使用这些确切的颜色,你可以用 @SuppressLint("ConflictingOnColor") 忽略这个警告。 :但某些系统或 Material 元素可能看起来不太好。

关于kotlin - 喷气背包组合中给定背景错误的 'on' 颜色冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69663048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com