Wie kann ich eine Textzeile mit unterschiedlicher Formatierung haben?
z.B:
Hallo Welt
Antworten:
Sie sollten das RichText- Widget verwenden.
Ein RichText-Widget nimmt ein TextSpan- Widget auf, das auch eine Liste untergeordneter TextSpans enthalten kann.
Jedes TextSpan-Widget kann einen anderen TextStyle haben .
Hier ist der zu rendernde Beispielcode: 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)),
],
),
);
Die folgende Antwort eignet sich am besten für einige Wörter und nicht für einen Absatz. Wenn Sie einen langen Satz oder einen Absatz haben, in dem Sie einen bestimmten Text formatieren müssen, verwenden Sie lieber RichText, wie von @DvdWasibi in der obigen Antwort vorgeschlagen
Ich mag es, meinen Code kurz und sauber zu halten. So füge ich zwei Textfelder in einer Reihe hinzu, eines mit normaler Schrift und eines mit Fettdruck .
Hinweis: Dies sieht möglicherweise nicht gut aus, wenn ein langer Absatz für Überschriften usw. gut aussieht.
Row(children: <Widget>[
Text("Hello"),
Text("World", style: TextStyle(fontWeight: FontWeight.bold))
])
`
und Sie sollten eine gewünschte Ausgabe als "Hallo Welt " erhalten
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?'),
],
),
);