В Flutter опцию выделенного текста можно реализовать с помощью виджета RichText
. RichText
позволяет создавать текст с различными стилями и свойствами для разных частей текста, включая выделение текста.
Чтобы выделить часть текста, вам необходимо использовать TextSpan
. TextSpan
- это виджет, который определяет отдельную часть текста со своими собственными стилями.
Вот пример кода, чтобы лучше понять, как это работает:
RichText( text: TextSpan( text: 'Это пример выделенного текста. ', style: DefaultTextStyle.of(context).style, children: <TextSpan>[ TextSpan( text: 'Здесь выделен текст', style: TextStyle(fontWeight: FontWeight.bold), ), TextSpan(text: ' и еще немного обычного текста.'), ], ), )
В этом примере у нас есть обычный текст "Это пример выделенного текста. Здесь выделен текст и еще немного обычного текста."
. Но мы хотим выделить фразу "Здесь выделен текст"
. Для этого мы используем TextSpan
с style: TextStyle(fontWeight: FontWeight.bold)
.
Комбинируя различные TextSpan
внутри TextSpan
, вы можете производить более сложные разметки и выделять разные части текста с различными стилями.
Также можно добавить обработчик событий к выделенному тексту, используя GestureRecognizer
. Например, если вы хотите обрабатывать нажатие на выделенный текст, вы можете добавить следующий код:
TextSpan( text: 'Здесь выделен текст', style: TextStyle(fontWeight: FontWeight.bold), recognizer: TapGestureRecognizer() ..onTap = () { // Действия при нажатии на выделенный текст }, ),
В данном примере мы добавляем recognizer
к TextSpan
, и при нажатии на выделенный текст будет вызываться функция, заданная в onTap
.
Таким образом, вы можете легко реализовать опцию выделенного текста в Flutter, используя виджеты RichText
, TextSpan
и, если необходимо, GestureRecognizer
.