Как выделить (или форматировать) текст в абзаце?

Как я могу иметь строку текста с различным форматированием?

например:.

Привет Мир

Ответ 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?'),
    ],
  ),
);