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

Функция MaterialTheme

Функция MaterialTheme из material3 оборачивает дерево composable и раздаёт тему. Светлую или тёмную палитру передают в colorScheme из lightColorScheme или darkColorScheme. Шрифты - в typography, скругления - в shapes. Весь экран - в лямбду content.

Синтаксис

MaterialTheme( colorScheme = lightColorScheme(), typography = Typography(), shapes = Shapes(), ) { content() }

Параметры

Параметр Описание
colorScheme Набор цветов. Тип - ColorScheme.
typography Стили текста. Тип - Typography.
shapes Формы углов карточек и кнопок. Тип - Shapes.
content Лямбда с экраном, который читает тему.

Пример

Давайте выведем текст в светлой теме по умолчанию:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { MaterialTheme { Text(text = "abcde") } } } }

На экране текст "abcde" получит цвет из светлой colorScheme.

Пример

Давайте зададим свою 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(0xFF1565C0), surface = Color(0xFFE3F2FD), ) MaterialTheme(colorScheme = scheme) { Box( modifier = Modifier .fillMaxSize() .background(MaterialTheme.colorScheme.surface), ) { Text( text = "12345", color = MaterialTheme.colorScheme.primary, ) } } } } }

На экране фон станет светло-голубым, а текст "12345" - синим primary.

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

  • функция lightColorScheme,
    которая собирает светлую палитру
  • функция darkColorScheme,
    которая собирает тёмную палитру
  • класс ColorScheme,
    который хранит primary, surface и другие цвета
  • функция Text,
    который берёт цвет из темы по умолчанию
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить