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

Функция dynamicDarkColorScheme

Функция dynamicDarkColorScheme берёт Context и возвращает тёмную ColorScheme из dynamic color. На Android 12+ оттенки связаны с обоями, иначе используют запасной набор как darkColorScheme. Результат передают в MaterialTheme.

Синтаксис

val scheme = dynamicDarkColorScheme(context)

Параметры

Параметр Описание
context Контекст приложения для чтения системных цветов.

Пример

Давайте включим тёмную dynamic тему для текста:

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.dynamicDarkColorScheme import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val context = LocalContext.current MaterialTheme( colorScheme = dynamicDarkColorScheme(context), ) { Box( modifier = Modifier .fillMaxSize() .background(MaterialTheme.colorScheme.background), ) { Text(text = "abcde") } } } } }

На экране фон станет тёмным из dynamic palette, текст "abcde" - контрастным из темы.

Пример

Давайте переключим светлую и тёмную dynamic схему по флагу:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.Button import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.material3.dynamicDarkColorScheme import androidx.compose.material3.dynamicLightColorScheme import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.platform.LocalContext class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val context = LocalContext.current var dark by remember { mutableStateOf(false) } val scheme = if (dark) { dynamicDarkColorScheme(context) } else { dynamicLightColorScheme(context) } MaterialTheme(colorScheme = scheme) { Button(onClick = { dark = !dark }) { Text(text = if (dark) "12345" else "abcde") } } } } }

На экране по нажатию на кнопку тема переключится между dynamic light и dynamic dark.

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

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