Виджет RichText
Виджет RichText выводит форматированный текст напрямую,
без темы Material вокруг каждой строки. Содержимое задаёт
параметр text типа InlineSpan, обычно
TextSpan.
Выравнивание - textAlign, обрезка - overflow,
лимит строк - maxLines.
Синтаксис
RichText(
text: TextSpan(
text: 'abcde',
),
)
Параметры
| Параметр | Описание |
|---|---|
text |
Дерево фрагментов. Обычно
TextSpan:
у него строка в text и вложенные фрагменты в children.
|
textAlign |
Выравнивание абзаца. Принимает
TextAlign.
|
overflow |
Поведение при нехватке места. Принимает
TextOverflow.
|
maxLines |
Максимум видимых строк. |
softWrap |
Перенос текста по ширине родителя. |
Пример
Давайте выведем два куска с разным размером шрифта:
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',
style: TextStyle(fontSize: 14),
),
TextSpan(
text: '12345',
style: TextStyle(fontSize: 22),
),
],
),
),
),
),
),
);
}
На экране в одной строке будут мелкая 'abcde'
и крупная '12345' части.
Пример
Давайте обрежем длинный текст многоточием:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: SizedBox(
width: 80,
child: RichText(
overflow: TextOverflow.ellipsis,
maxLines: 1,
text: TextSpan(
text: 'abcde12345',
style: TextStyle(color: Colors.black),
),
),
),
),
),
),
);
}
На экране в узком блоке строка обрежется и в конце появится многоточие.
Смотрите также
-
виджет
Text,
который выводит простой текст одной строкой -
класс
TextSpan,
который собирает дерево форматированного текста -
класс
WidgetSpan,
который вставляет виджет внутрь текста -
перечисление
TextOverflow,
которое задаёт обрезку длинного текста