我怎样才能使一行文本具有不同的格式?
例如:
你好世界
Answers:
您应该使用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)),
],
),
);
下面的答案最适合几个单词而不是一个段落,如果您的句子较长或需要格式化特定文本的段落,则最好使用@DvdWasibi建议的RichText
我喜欢保持代码简短简洁,这就是我要如何在行中添加两个文本字段,其中一个使用Normal字体,另一个使用粗体,
注意:这对于较长的段落可能看起来不太好,对于标题等则看起来不错。
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?'),
],
),
);