我有来自 API 的文本,但我想在显示到屏幕之前将其格式化为粗体。
这是代码
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Text(
state.listExplanation[index].description!, --> this is the text that I want to format
style: body1(),
),
我调用的变量描述有这样的API文本:
"description" : "Lorem Ipsum has been the industry's standard dummy text ever since the 1500s."
不,在显示到屏幕之前,我只想将“Lorem Ipsum”和“1500s”设为粗体。我只知道如何完全更改文本,但要部分更改文本,这让我很困惑。
希望你能给我你的建议
如果文本来自
API
,您仍然可以使用相同的方法,将文本分成几部分,格式化您想要加粗的部分,然后将它们重新组合在一起。
试试这个例子:
String apiText = "Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.";
List<String> parts = apiText.split(' ');
TextSpan textSpan = new TextSpan(
children: parts.map((part) {
if (part == 'Lorem' || part.endsWith('1500s')) {
return new TextSpan(
text: part + ' ',
style: new TextStyle(fontWeight: FontWeight.bold),
);
} else {
return new TextSpan(
text: part + ' ',
);
}
}).toList(),
);
return new RichText(text: textSpan);
我们使用
split()
方法将文本拆分为多个部分,然后循环遍历每个部分以确定是否应将其格式化为粗体。如果零件符合条件,我们将创建一个 TextSpan
,并将 fontWeight
属性设置为 bold
。如果部分不匹配,我们创建一个没有任何特殊格式的TextSpan
。最后,我们使用 TextSpan
小部件将所有 RichText
的背面组合在一起。