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

Posted

技术标签:

【中文标题】以编程方式为 NativeScript Vue 中的标签设置“跨度”颜色在 FormattedString 中不起作用【英文标题】:Programmatically setting "Span" color doesn't work in FormattedString for a Label in NativeScript Vue 【发布时间】:2020-02-03 12:17:22 【问题描述】:

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

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

请查找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;

输出截图:(文字仍为黑色):

【问题讨论】:

【参考方案1】:

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

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

欢迎任何其他方式!

【讨论】:

以上是关于以编程方式为 NativeScript Vue 中的标签设置“跨度”颜色在 FormattedString 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

NativeScript Vue RadAutoCompleteTextView 以编程方式删除所有标记

Nativescript-vue 将光标设置在 TextInput RTL 的末尾

Nativescript 以编程方式滚动到 ScrollView 的底部

如何使用 Nativescript-Vue 分配元素以制作动画?

如何在 nativescript-vue 中使用 e2e 或单元测试?

NativeScript Vue - 导航到其他组件同时保持具有配置文件信息的相同顶部的最佳方式?