Flutter 拆分并使特定单词加粗
Flutter split and make specific word bold
我有这样的字符串
"Hi @username how are you"
我想将@username 文本更改为粗体...只是@username 而不是整个句子
示例:“嗨 @username 你好吗
利用flutter TextSpan
Text _myText;
/*set _myText.text to whatever text you want */
RichText(
text: TextSpan(
text: 'Hi',
style: DefaultTextStyle.of(context).style,
children: <TextSpan>[
TextSpan(text: _myText.text, style: TextStyle(fontWeight: FontWeight.bold)),
TextSpan(text: 'how are you')
],
),
)
这是一个小功能,可以为您执行此操作,然后 returns 一个小部件列表。
List<Text> _transformWord(String word) {
List<String> name = word.split(' ');
List<Text> textWidgets = [];
for (int i = 0; i < name.length; i++) {
if (name[i].contains('@')) {
Text bold = Text(
name[i] + ' ',
style: TextStyle(
fontWeight: FontWeight.bold,
),
);
textWidgets.add(bold);
} else {
Text normal = Text(
name[i] + ' ',
);
textWidgets.add(normal);
}
}
return textWidgets;
}
您可以从行小部件调用此函数
Row(
children: _transformWord(),
),
我有这样的字符串 "Hi @username how are you" 我想将@username 文本更改为粗体...只是@username 而不是整个句子
示例:“嗨 @username 你好吗
利用flutter TextSpan
Text _myText;
/*set _myText.text to whatever text you want */
RichText(
text: TextSpan(
text: 'Hi',
style: DefaultTextStyle.of(context).style,
children: <TextSpan>[
TextSpan(text: _myText.text, style: TextStyle(fontWeight: FontWeight.bold)),
TextSpan(text: 'how are you')
],
),
)
这是一个小功能,可以为您执行此操作,然后 returns 一个小部件列表。
List<Text> _transformWord(String word) {
List<String> name = word.split(' ');
List<Text> textWidgets = [];
for (int i = 0; i < name.length; i++) {
if (name[i].contains('@')) {
Text bold = Text(
name[i] + ' ',
style: TextStyle(
fontWeight: FontWeight.bold,
),
);
textWidgets.add(bold);
} else {
Text normal = Text(
name[i] + ' ',
);
textWidgets.add(normal);
}
}
return textWidgets;
}
您可以从行小部件调用此函数
Row(
children: _transformWord(),
),