Класс ColorScheme
Класс ColorScheme описывает роли цветов:
primary, onPrimary, surface и другие.
Схему кладут в colorScheme у ThemeData.
Светлый и тёмный наборы дают методы light и dark,
палитру из одного seed-цвета - fromSeed.
Яркость фона задаёт поле brightness.
Синтаксис
ColorScheme.fromSeed(
seedColor: Colors.blue,
)
Параметры
| Параметр | Описание |
|---|---|
primary |
Главный цвет кнопок и акцентов. Принимает Color.
|
onPrimary |
Цвет текста и значков на главном цвете. Принимает Color.
|
surface |
Цвет фона карточек и листов. Принимает Color.
|
brightness |
Светлая или тёмная схема. Принимает Brightness.
|
Методы
| Метод | Описание |
|---|---|
copyWith |
Принимает новые значения primary, onPrimary, surface и других ролей. |
dark |
Фабричный метод dark у ColorScheme возвращает тёмную палитру Material.
|
fromSeed |
Фабричный метод fromSeed у ColorScheme принимает seedColor и необязательную Brightness.
|
lerp |
Принимает две схемы и долю t от 0 до 1. Давайте разберём вызов на примерах.
|
light |
Фабричный метод light у ColorScheme возвращает светлую палитру Material.
|
Пример
Давайте построим тему из seed-цвета:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(
seedColor: Colors.deepOrange,
),
),
home: Scaffold(
appBar: AppBar(
title: Text('abcde'),
),
body: Center(
child: Text('12345'),
),
),
),
);
}
На экране AppBar и акценты подстроятся
под deepOrange из ColorScheme.fromSeed.
Пример
Давайте зададим тёмную ColorScheme явно:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
theme: ThemeData(
colorScheme: ColorScheme.dark(
primary: Colors.cyan,
),
),
home: Scaffold(
body: Center(
child: Text('abcde'),
),
),
),
);
}
На экране фон и текст будут тёмными, основной акцент станет cyan.
Смотрите также
-
метод
fromSeed,
который строит палитру из одного цвета -
класс
ThemeData,
в котором лежит colorScheme -
перечисление
Brightness,
которое совпадает с brightness схемы -
класс
Color,
которым задают seedColor и primary