Как сделать строку текста с другим форматированием?
например:
Привет мир
Ответы:
Вам следует использовать виджет RichText .
Виджет RichText принимает виджет TextSpan, который также может иметь список дочерних TextSpans.
Каждый виджет TextSpan может иметь свой TextStyle .
Вот пример кода для рендеринга: Hello World
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)),
],
),
);
Приведенный ниже ответ лучше всего подходит для пары слов, а не для абзаца.Если у вас есть длинное предложение или абзац, в котором вам нужно отформатировать конкретный текст, предпочитайте использовать RichText, как это было предложено @DvdWasibi в приведенном выше ответе
Мне нравится, чтобы мой код был коротким и чистым, вот как я бы сделал это, добавив два текстовых поля в строку, одно с обычным шрифтом, а другое жирным ,
Примечание. Это может не выглядеть хорошо, поскольку длинный абзац подходит для заголовков и т. Д.
Row(children: <Widget>[
Text("Hello"),
Text("World", style: TextStyle(fontWeight: FontWeight.bold))
])
`
и вы должны получить желаемый результат как «Hello World »
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?'),
],
),
);