- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望为接受颜色的@Composable 函数提供一个参数,但只接受离散列表中的一个颜色。
类似这样的东西:
enum class SpecialColor(val color: Color) {
ALPHA(MaterialTheme.colors.onSurface),
BETA(MaterialTheme.colors.onSecondary)
}
@Composable
fun ColorSample(specialColor: SpecialColor) {
Box(
modifier = Modifier
.width(100.dp)
.height(100.dp)
.background(specialColor.color)
)
}
@Preview
@Composable
fun PreviewSample() {
CustomTheme {
ColorSample(specialColor = SpecialColor.ALPHA)
}
}
由于上面是在可组合上下文之外引用 MaterialTheme.colors,因此会出现以下错误:
@Composable invocations can only happen from the context of a@Composable function
最佳答案
这实际上是不正确的:
@Composable functions don't have return values.
@Composable
注释只有 getter 的属性。 .例如
this是 Material 主题源代码的一部分。
enum class SpecialColor {
ALPHA,
BETA,
;
val color: Color
@Composable
@ReadOnlyComposable
get() = when(this) {
ALPHA -> MaterialTheme.colors.onSurface
BETA -> MaterialTheme.colors.onSecondary
}
}
关于android - 在 Composable 函数之外引用或枚举 Jetpack Compose MaterialTheme 主题颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71659455/
在使用 compose 编码时,我们经常使用 MaterialTheme 代码。有没有办法缩短这部分代码?例如:mColor.primay 最佳答案 这与其说是 Jetpack Compose 解决方
我有主题 Theme.MaterialComponents.Light.NoActionBar在我的风格中作为主要的 Apptheme。 我的提醒主题是 @drawable/aler
设置 MaterialTheme.colors 我正在尝试在 Jetpack Compose 中为桌面(不是移动设备)制作一个非常基本的窗口,但我在更改窗口颜色时遇到了一些困难。我看过一些教程和示例,
我希望为接受颜色的@Composable 函数提供一个参数,但只接受离散列表中的一个颜色。 类似这样的东西: enum class SpecialColor(val color: Color) {
Android Jetpack 撰写 Colors类包含一组颜色类型,可以用来实现 Material 主题的应用程序。如果我的应用程序主题需要一些额外的颜色类型,我该如何添加这些额外的颜色以便它们可以
我正在尝试使用 TextField()来自 Jetpack Compose。我希望文本颜色为白色。 我发现这是有效的: ProvideTextStyle(TextStyle(color = Color
我是一名优秀的程序员,十分优秀!