Рабочий стол Jetpack Compose - MaterialTheme.colors.background не работает

Настройка MaterialTheme.colors

Я пытаюсь создать очень простое окно в Jetpack Compose for Desktop (не на мобильном устройстве), но у меня возникают некоторые трудности с изменением цвета окна. Я просмотрел несколько руководств и примеров, но, возможно, я не совсем понимаю, как правильно реализованы цветовые темы.
Код, который я написал, должен создавать окно с темным фоном, но окно при запуске программы белое.
Расскажите, пожалуйста, о том, что я делаю неправильно.

Код (Котлин)

          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 Big Sur
IntelliJ 2021.2
Jetpack Compose 0.4.0

2 ответа

Решение

The MaterialTheme only provides colors for all views inside the container, it does not create or render the view.

Most Material components will use these colors as default values, but you can also use these colors in your viewы using, for example, MaterialTheme.colors.background.

You need to put some view inside, size it and apply some background color, for example:

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

Вы можете использовать Scaffold , чтобы увидеть изменения. В вашем примере:

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

Вы можете прочитать об этом: https://developer.android.com/jetpack/compose/layouts/material или здесь: https://metanit.com/kotlin/jetpack/4.11.php

Другие вопросы по тегам