Метод merge
Метод merge класса TextTheme принимает другую TextTheme. Для каждой роли берёт стиль из аргумента, если он не null, иначе оставляет свой.
Синтаксис
textTheme.merge(other)
Параметры
| Параметр | Описание |
|---|---|
other |
Вторая TextTheme, чьи непустые стили перекрывают первую.
|
Пример
Давайте дополним базовую тему акцентным bodyMedium:
import 'package:flutter/material.dart';
void main()
{
var base = TextTheme(
titleLarge: TextStyle(fontSize: 22),
);
var patch = TextTheme(
bodyMedium: TextStyle(color: Colors.red),
);
var res = base.merge(patch);
print('abcde');
print(res.bodyMedium?.color);
}
Результат выполнения кода
Color(0xffff0000)
Пример
Давайте покажем merge на экране через Theme:
import 'package:flutter/material.dart';
void main()
{
var merged = ThemeData.light().textTheme.merge(
TextTheme(
bodyMedium: TextStyle(
fontWeight: FontWeight.bold,
),
),
);
runApp(
MaterialApp(
theme: ThemeData(
textTheme: merged,
),
home: Scaffold(
body: Center(
child: Text('12345'),
),
),
),
);
}
На экране строка '12345' станет жирной
из bodyMedium после merge.