我正在尝试使用通过FormattedString设置Label文本的编程方式,因为我需要在输出文本中使用不同的文本颜色。
我正在尝试更改跨度的前景色,但似乎不起作用。有谁知道实现此目标的任何其他方法,或者可以指出我在这里错过了什么?
代码段:
createFormattedString(stringsToFormat) {
stringsToFormat = stringsToFormat ?
stringsToFormat :
[{
text: "It's going to be ",
type: "normal"
},
{
text: "sunny",
type: "orange"
},
{
text: " today!",
type: "normal"
}
];
const formattedString = require("text/formatted-string");
const formattedSpan = require("text/span");
const ColorModule = require("tns-core-modules/color");
let fstringToSend = new formattedString.FormattedString();
stringsToFormat.forEach((currentStrFragment, idx) => {
let fspan = new formattedSpan.Span();
fspan.text = currentStrFragment.text;
fspan.color = new ColorModule.Color(
"#FFFFFF");
switch (currentStrFragment.type) {
case "normal":
//fspan.color = "black";
break;
case "orange":
console.log("ORANGE setting anything");
// fspan.class = "orange-text";
break;
default:
console.log("Not setting anything");
break;
}
fstringToSend.spans.push(fspan);
});
return fstringToSend;
}
输出屏幕截图:(文本仍为黑色):
我发现了一种以编程方式设置formattedText的解决方法:
https://play.nativescript.org/?template=play-vue&id=U5EbLY&v=3
欢迎其他方式!