Як я можу отримати рядок тексту з різним форматуванням?
наприклад:
Привіт Світ
Відповіді:
Вам слід використовувати віджет 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?'),
],
),
);