Метод apply
Метод apply класса TextTheme принимает fontFamily, fontSize, color, letterSpacing и другие общие поля. Каждый непустой аргумент накладывается на все роли темы.
Синтаксис
textTheme.apply(
fontFamily: family,
bodyColor: color,
)
Параметры
| Параметр | Описание |
|---|---|
fontFamily |
Общий шрифт для всех ролей. |
bodyColor |
Цвет для bodyLarge, bodyMedium и bodySmall. |
displayColor |
Цвет для displayLarge и других display-ролей. |
Пример
Давайте задать общий bodyColor:
import 'package:flutter/material.dart';
void main()
{
var base = ThemeData.light().textTheme;
var res = base.apply(bodyColor: Colors.indigo);
print('12345');
print(res.bodyMedium?.color);
}
Результат выполнения кода
Color(0xff3f51b5)
Пример
Давайте передать apply в ThemeData на экране:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
theme: ThemeData(
textTheme: ThemeData.light().textTheme.apply(
bodyColor: Colors.deepPurple,
),
),
home: Scaffold(
body: Center(
child: Text('abcde'),
),
),
),
);
}
На экране текст 'abcde' станет deepPurple
из bodyColor после apply.