如何更改撰写主题中的 primaryVariant 颜色?

How to change primaryVariant color in compose theme?

我正在尝试学习如何在 Jetpack compose 中设置自定义应用程序主题,但我正在努力设置 primaryVariant 颜色的颜色,当我创建自定义颜色托盘时,它似乎没有被覆盖。

  private val MyLightColorPalette = lightColors(
    primary = Green,
    primaryVariant = Grey,
    onPrimary = Color.White,
    secondary = Green,
    secondaryVariant = Grey,
    onSecondary = Color.White,
    error = DarkGrey,
)

这是我的调色板,但它使用的是紫色而不是绿色。有人知道为什么它仍然使用默认的紫色吗?

这是代码的其余部分:

@Composable
fun MyAppTheme(darkTheme: Boolean = isSystemInDarkTheme(), content: @Composable () -> Unit) {
    val colors = if (darkTheme) {
        MyDarkColorPalette
    } else {
        MyLightColorPalette
    }
    MaterialTheme(
            colors = colors,
            typography = Typography,
            shapes = Shapes,
            content = content
    )
}

@AndroidEntryPoint
class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            MyAppTheme {
                Scaffold() {
                    TopBar()
                }
            }
        }
    }
}

我使用的Compose版本是1.0.4

如果要求只是将整个应用程序的状态栏颜色更改为纯色,那么在没有 Accompanist 的情况下也可以。

将此添加到您的 activity 主题 XML 代码中。

<item name="android:statusBarColor" tools:targetApi="l">@color/status_bar</item>