Как справиться с выбором текста?
Мне нужно отобразить стилизованный текст для чтения и некоторые действия. Пользователь должен иметь возможность выбрать фрагмент текста и пометить его цветом, сохранить его или развернуть (показать дополнительную информацию, например, перевод на другой язык).
Я могу отображать текст с помощью виджета RichText.
1) Как сделать его доступным и как/где добавить onTextSelected прослушиватель? Существует класс TextSelection, но я не вижу, как/где он используется.
2) Что является самым простым способом расширения текста? Я могу перезагрузить полный текст (с добавленными изменениями) и полностью обновить виджет, но это приведет к прокрутке вверху текста, и я думаю, что должен быть лучший подход.
Ответы
Ответ 1
В Flutter достигнут определенный прогресс в обеспечении возможности выделения текста. Единственное работающее решение на данный момент - это использование RenderEditable
с подавленными вызовами клавиатуры и удаленным курсором.
Посмотрите плагин flutter_selectable_text
для выбора текста.
Чтобы также прослушивать события выбора - рассмотрите возможность использования плагина flutter_selectext
, который также поддерживает форматированный текст (TextSpan
).
Однако я бы порекомендовал дождаться официальной реализации, которая должна прибыть в конце мая 2019 года.
Ответ 2
Используйте GestureDetector из вашего текстового представления. Например
GestureDetector(
onTap: (){},
child: Text(
'Your text',
style: TextStyle(
color: Colors.green,
),
),
),
А что касается остальной части вопроса, я не понимаю,