Jetpack Compose 桌面 – MaterialTheme.colors.background 不起作用

问题描述 投票:0回答:3

设置MaterialTheme.colors

我正在尝试在 Jetpack Compose 中为 Desktop(非移动设备)制作一个非常基本的窗口,但我在更改窗口的颜色时遇到了一些困难。我看过一些教程和示例,但也许我不太明白颜色主题是如何正确实现的。
我写的代码应该创建一个深色背景的窗口,但是程序运行时的窗口是白色的。
请提供有关我做错了什么的任何见解。

代码(Kotlin)

import androidx.compose.desktop.*
import androidx.compose.material.*
import androidx.compose.ui.unit.*


fun main() = Window(
    title = "Window",
    resizable = false,
    size = IntSize(1200, 800),
) {
    MaterialTheme(colors = darkColors()) {

    }
}

窗户

其他信息

macOS 大苏尔
IntelliJ2021.2
Jetpack Compose0.4.0

kotlin material-design android-jetpack-compose compose-desktop
3个回答
3
投票

MaterialTheme
仅为容器内的所有视图提供颜色,它不会创建或渲染视图。

大多数材质组件将使用这些颜色作为默认值,但您也可以在视图中使用这些颜色,例如,

MaterialTheme.colors.background

您需要在里面放入一些视图,调整其大小并应用一些背景颜色,例如:

MaterialTheme(colors = darkColors()) {
    Box(Modifier.fillMaxSize().background(MaterialTheme.colors.background))
}

1
投票

您可以使用Scaffold来查看更改。 在你的例子中:

...
MaterialTheme(colors = darkColors()) {
    Scaffold {
        // your content
    }
}
...

您可以阅读以下内容: https://developer.android.com/jetpack/compose/layouts/material 或在这里: https://metanit.com/kotlin/jetpack/4.11.php


0
投票

对于那些来到这里并使用材料 3 的人。材料 3 使用

colorScheme
而不是
colors
。 请参阅页面了解更改

© www.soinside.com 2019 - 2024. All rights reserved.