Метод rich
Метод rich виджета
SelectableText работает как
SelectableText,
но вместо одной строки принимает дерево
TextSpan:
у каждого фрагмента свой текст и свой стиль.
Параметры style, textAlign,
maxLines и overflow задают весь абзац сразу:
базовый стиль, выравнивание, число строк и обрезку.
Само дерево передают в textSpan.
Синтаксис
SelectableText.rich(
TextSpan(
text: 'abcde',
children: [
TextSpan(text: '12345'),
],
),
)
Параметры
| Параметр | Описание |
|---|---|
textSpan |
Дерево
TextSpan,
из которого собран абзац. Обязательный параметр.
|
style |
Цвета и яркость значков системных панелей. |
textAlign |
Выравнивание. Принимает
TextAlign.
|
maxLines |
Лимит строк. |
overflow |
Обрезка. Принимает
TextOverflow.
|
Пример
Давайте выведем два стиля в одной выделяемой строке:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: SelectableText.rich(
TextSpan(
style: TextStyle(color: Colors.black),
children: [
TextSpan(text: 'abcde'),
TextSpan(
text: '12345',
style: TextStyle(fontWeight: FontWeight.bold),
),
],
),
),
),
),
),
);
}
На экране обе части строки можно выделить и скопировать вместе.
Пример
Давайте выровняем форматированный текст по центру:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: SizedBox(
width: 240,
child: SelectableText.rich(
TextSpan(
style: TextStyle(fontSize: 16, color: Colors.black),
children: [
TextSpan(text: 'abcde '),
TextSpan(
text: '12345',
style: TextStyle(color: Colors.blue),
),
],
),
textAlign: TextAlign.center,
),
),
),
),
),
);
}
На экране выделяемая строка будет по центру блока, вторая часть - синей.
Смотрите также
-
виджет
SelectableText,
который выводит простую выделяемую строку -
метод
richуText,
который рисуетTextSpanбез выделения -
класс
TextSpan,
который описывает фрагменты текста -
виджет
SelectionArea,
который включает выделение для обычногоTextвнутри