对于NativeScript Vue中的标签,在FormattedString中以编程方式设置“跨度”颜色不起作用

问题描述 投票:0回答:1

我正在尝试使用通过FormattedString设置Label文本的编程方式,因为我需要在输出文本中使用不同的文本颜色。

我正在尝试更改跨度的前景色,但似乎不起作用。有谁知道实现此目标的任何其他方法,或者可以指出我在这里错过了什么?

请找到Playground with the code

代码段:

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;
}

输出屏幕截图:(文本仍为黑色):

enter image description here

nativescript angular2-nativescript nativescript-vue
1个回答
0
投票

我发现了一种以编程方式设置formattedText的解决方法:

https://play.nativescript.org/?template=play-vue&id=U5EbLY&v=3

欢迎其他方式!

© www.soinside.com 2019 - 2024. All rights reserved.