Виджет SelectionArea
Виджет SelectionArea оборачивает поддерево и даёт
выделять обычный Text
и другой текст, как в документе. Дочерний виджет передают
в child. Поведение меню и фокуса можно настроить
через focusNode и selectionControls.
Синтаксис
SelectionArea(
child: Column(
children: [
Text('abcde'),
],
),
)
Параметры
| Параметр | Описание |
|---|---|
child |
Поддерево, в котором разрешено выделение текста. |
focusNode |
Узел фокуса для клавиатурного выделения. |
selectionControls |
Набор кнопок панели выделения для платформы. |
contextMenuBuilder |
Построитель контекстного меню при выделении. |
Пример
Давайте сделаем выделяемым обычный Text:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: SelectionArea(
child: Text('abcde'),
),
),
),
),
);
}
На экране строка 'abcde' станет выделяемой,
хотя это не SelectableText.
Пример
Давайте выделим сразу два Text в колонке:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: SelectionArea(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text('abcde'),
Text('12345'),
],
),
),
),
),
),
);
}
На экране можно протянуть выделение через обе строки и скопировать их одним фрагментом.
Смотрите также
-
виджет
SelectableText,
который выделяется без обёрткиSelectionArea -
виджет
Text,
который рисует текст внутриSelectionArea -
виджет
DefaultTextStyle,
который задаёт стиль дляTextвнутри области -
метод
rich,
который даёт выделяемый форматированный текст