Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
234 of 502 menu
◀ ▶

Класс ColorScheme

Класс ColorScheme описывает палитру Material3. Собирают его функциями lightColorScheme, darkColorScheme и dynamic-вариантами. Частые поля: primary и onPrimary для акцента и текста на нём, background для экрана, surface для карточек и панелей. Отдельные уроки на каждый слот не делают. Копию с заменой цветов даёт метод copy.

Синтаксис

MaterialTheme.colorScheme.primary

Методы

Метод Описание
copy Возвращает схему с подменой отдельных цветов.

Пример

Давайте возьмём 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.ui.Modifier class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { MaterialTheme { Box( modifier = Modifier .fillMaxSize() .background(MaterialTheme.colorScheme.surface), ) { Text( text = "abcde", color = MaterialTheme.colorScheme.primary, ) } } } } }

На экране фон возьмёт surface, текст "abcde" - primary из ColorScheme.

Пример

Давайте изменим только primary через copy:

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.ui.graphics.Color class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { MaterialTheme { val scheme = MaterialTheme.colorScheme.copy( primary = Color(0xFFC62828), ) MaterialTheme(colorScheme = scheme) { Text( text = "12345", color = MaterialTheme.colorScheme.primary, ) } } } } }

На экране текст "12345" станет красным, остальные слоты схемы сохранятся.

Смотрите также

  • метод copy,
    который меняет отдельные цвета схемы
  • функция MaterialTheme,
    которая раздаёт colorScheme composable-ам
  • класс Color,
    тип каждого поля ColorScheme
  • функция lightColorScheme,
    которая создаёт новую светлую схему
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить