Метод copyWith
Метод copyWith класса TextTheme принимает новые стили для displayLarge, bodyMedium и других ролей. Непереданные роли копируются из исходной темы.
Синтаксис
textTheme.copyWith(
bodyMedium: style,
)
Параметры
| Параметр | Описание |
|---|---|
bodyMedium |
Новый стиль основного текста. |
titleLarge |
Новый стиль крупного заголовка. |
Пример
Давайте увеличить bodyMedium через copyWith:
import 'package:flutter/material.dart';
void main()
{
var base = ThemeData.light().textTheme;
var res = base.copyWith(
bodyMedium: TextStyle(fontSize: 18),
);
print('12345');
print(res.bodyMedium?.fontSize);
}
Результат выполнения кода
18.0
Пример
Давайте передать copyWith в MaterialApp:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
theme: ThemeData.light().copyWith(
textTheme: ThemeData.light().textTheme.copyWith(
bodyMedium: TextStyle(color: Colors.teal),
),
),
home: Scaffold(
body: Center(
child: Text('abcde'),
),
),
),
);
}
На экране основной текст 'abcde' станет teal
из изменённого bodyMedium.