Как выделить (или форматировать) текст в абзаце?
Как я могу иметь строку текста с различным форматированием?
например:.
Привет Мир
Ответы
Ответ 1
Вы должны использовать виджет RichText.
Виджет RichText примет вид TextSpan, который также может иметь список дочерних TextSpans.
Каждый виджет TextSpan может иметь другой TextStyle.
Вот пример кода для рендеринга:
Привет Мир
var text = new RichText(
text: new TextSpan(
// Note: Styles for TextSpans must be explicitly defined.
// Child text spans will inherit styles from parent
style: new TextStyle(
fontSize: 14.0,
color: Colors.black,
),
children: <TextSpan>[
new TextSpan(text: 'Hello'),
new TextSpan(text: 'World', style: new TextStyle(fontWeight: FontWeight.bold)),
],
),
);
Ответ 2
Мне нравится, чтобы мой код был коротким и чистым, вот как я могу добавить два текстовых поля подряд, одно с обычным шрифтом, а другое жирным шрифтом,
Примечание: это может выглядеть не очень хорошо, если длинный абзац выглядит хорошо для заголовков и т.д.
Row(children: <Widget>[
Text("Hello"),
Text("World", style: TextStyle(fontWeight: FontWeight.bold))
])
'
и вы должны получить желаемый результат как "Hello World "
Ответ 3
return RichText(
text: TextSpan(
text: 'Can you ',
style: TextStyle(color: Colors.black),
children: <TextSpan>[
TextSpan(
text: 'find the',
style: TextStyle(
color: Colors.green,
decoration: TextDecoration.underline,
decorationStyle: TextDecorationStyle.wavy,
),
recognizer: _longPressRecognizer,
),
TextSpan(text: 'secret?'),
],
),
);