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

Функция dynamicLightColorScheme

Функция dynamicLightColorScheme принимает Context и возвращает светлую ColorScheme на основе dynamic color устройства. На Android 12 и выше оттенки берут из обоев, на более старых версиях подставляют fallback как у lightColorScheme. Схему передают в MaterialTheme, сама функция экран не рисует.

Синтаксис

val scheme = dynamicLightColorScheme(context)

Параметры

Параметр Описание
context Контекст активности или приложения. Через него читают системные dynamic colors.

Пример

Давайте применим dynamic light scheme к тексту:

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

На экране текст "abcde" получит цвета из светлой палитры устройства, если система их отдаёт.

Пример

Давайте покрасим фон surface из dynamic scheme:

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.dynamicLightColorScheme 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 = dynamicLightColorScheme(context), ) { Box( modifier = Modifier .fillMaxSize() .background(MaterialTheme.colorScheme.surface), ) { Text( text = "12345", color = MaterialTheme.colorScheme.primary, ) } } } } }

На экране фон и primary подстроятся под светлую dynamic palette Android.

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

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