Как можно реализовать опции выделенного текста?

В 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.