Метод merge
Метод merge виджета
DefaultTextStyle создаёт виджет
DefaultTextStyle,
у которого style получен слиянием переданного
TextStyle
с текущим стилем из context. Параметры style
и child обязательны для использования.
Синтаксис
DefaultTextStyle.merge(
style: TextStyle(fontWeight: FontWeight.bold),
child: Text('abcde'),
)
Параметры
| Параметр | Описание |
|---|---|
style |
Дополнительный TextStyle,
который накладывается на стиль предка.
|
child |
Поддерево с новым DefaultTextStyle.
|
Пример
Давайте сделаем дочерний текст жирным, сохранив размер:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: DefaultTextStyle(
style: TextStyle(fontSize: 20, color: Colors.black),
child: DefaultTextStyle.merge(
style: TextStyle(fontWeight: FontWeight.bold),
child: Text('abcde'),
),
),
),
),
),
);
}
На экране строка 'abcde' будет размером 20
и жирной.
Пример
Давайте сменим только цвет у части поддерева:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: DefaultTextStyle(
style: TextStyle(color: Colors.black),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Text('abcde'),
DefaultTextStyle.merge(
style: TextStyle(color: Colors.blue),
child: Text('12345'),
),
],
),
),
),
),
),
);
}
На экране первая строка чёрная, вторая синяя.
Смотрите также
-
метод
of,
который читает текущийDefaultTextStyle -
метод
mergeуTextStyle,
который сливает два стиля на уровне данных -
виджет
DefaultTextStyle,
который задаёт стиль целиком без слияния -
класс
TextStyle,
который передаётся в параметр style