Класс TextSpan
Класс TextSpan не является виджетом: это описание
фрагмента текста для RichText
или Text.rich.
Строка фрагмента - поле text, оформление - style,
вложенные фрагменты - список children.
Синтаксис
TextSpan(
text: 'abcde',
style: TextStyle(fontSize: 16),
children: [
TextSpan(text: '12345'),
],
)
Параметры
| Параметр | Описание |
|---|---|
text |
Содержимое фрагмента. Может быть пустым,
если весь текст в children.
|
style |
Стиль фрагмента. Принимает
TextStyle.
|
children |
Список вложенных InlineSpan,
которые идут после text этого узла.
|
Пример
Давайте соберём RichText из двух TextSpan:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: RichText(
text: TextSpan(
style: TextStyle(color: Colors.black),
children: [
TextSpan(text: 'abcde'),
TextSpan(
text: '12345',
style: TextStyle(fontWeight: FontWeight.bold),
),
],
),
),
),
),
),
);
}
На экране в одной строке пойдут обычный и жирный фрагменты.
Пример
Давайте вложим дочерние фрагменты в родительский text:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: RichText(
text: TextSpan(
text: 'abcde',
style: TextStyle(color: Colors.black),
children: [
TextSpan(
text: '12345',
style: TextStyle(color: Colors.blue),
),
],
),
),
),
),
),
);
}
На экране сначала выведется 'abcde' чёрным,
затем '12345' синим.
Смотрите также
-
виджет
RichText,
который рисует деревоInlineSpanна экране -
класс
WidgetSpan,
который вставляет виджет между фрагментами текста -
метод
rich,
который строитTextизTextSpan -
класс
TextStyle,
который задаёт оформление фрагмента