Функция lightColorScheme
Функция lightColorScheme
возвращает
ColorScheme
для светлого интерфейса.
Без аргументов подставляет оттенки Material по умолчанию.
Свои цвета передают именованными параметрами,
например primary и surface.
Схему не рисуют на экране сами:
её кладут в
MaterialTheme.
Синтаксис
val scheme = lightColorScheme(
primary = Color.Blue,
surface = Color.White,
)
Параметры
| Параметр | Описание |
|---|---|
primary |
Главный акцентный цвет. Тип -
Color.
|
onPrimary |
Цвет текста и иконок поверх primary. |
background |
Фон всего экрана за content. |
surface |
Фон карточек, панелей и листов. |
Пример
Давайте применим светлую схему по умолчанию:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.material3.lightColorScheme
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MaterialTheme(colorScheme = lightColorScheme()) {
Text(text = "abcde")
}
}
}
}
На экране текст получит цвета стандартной светлой темы Material.
Пример
Давайте перекрасим primary и surface:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.material3.lightColorScheme
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val scheme = lightColorScheme(
primary = Color(0xFF2E7D32),
onPrimary = Color.White,
surface = Color(0xFFF1F8E9),
)
MaterialTheme(colorScheme = scheme) {
Box(
modifier = Modifier
.fillMaxSize()
.background(MaterialTheme.colorScheme.surface),
) {
Text(
text = "12345",
color = MaterialTheme.colorScheme.primary,
)
}
}
}
}
}
На экране фон станет светло-зелёным,
текст "12345" - тёмно-зелёным primary.
Смотрите также
-
функция
darkColorScheme,
которая собирает тёмную палитру -
функция
MaterialTheme,
которая принимает colorScheme -
класс
ColorScheme,
который возвращает lightColorScheme -
класс
Color,
которым задают отдельные слоты схемы