【问题标题】:Setting class when calling createLabel调用 createLabel 时设置类
【发布时间】:2013-12-13 18:16:01
【问题描述】:

我正在使用 Titanium Studio 和 Titanium SDK。在这种情况下,我正在为 Android 开发,但我也在 OSX 上安装。

使用合金时,我可以指定

<Label class="header" id="someId">Week 50</Label>

然后像这样在 TSS 文件中指定颜色、字体等

".header": {
  color: "blue"
}

但是当我使用 SDK 版本时:

var l = Ti.UI.createLabel({class:"header", text:"sometext"});

TSS 文件中的颜色没有被拾取???

我做错了什么。 “类”不是有效属性吗? (我似乎无法在文档中找到它)。

【问题讨论】:

    标签: titanium titanium-alloy


    【解决方案1】:

    Alloy 样式会自动应用于通过 xml 创建的视图。如果您想在控制器内创建对象时保持这种效果,您必须使用 $.UI.create() 方法而不是 Titanium API。在您的情况下,您的代码将如下所示:

    var l = $.UI.create('Label', {
       title: "sometext",
       classes: ["header"],
    });
    

    更多信息请阅读Dynamic Styles guide。它没有很好的文档记录,当我阅读它时,我还不清楚其中的某些部分,但这是试验代码和学习 Alloy 行为的良好起点。

    【讨论】:

    • 感谢您的指点,我错过了 $.UI.create() 调用。但是我只能让它使用以下语法: var label = $.UI.create('Label', {text:"sometext", classes:["header"]});任何 cmets 为什么语法不同?
    • 对不起,我忘记了不同的属性。我已更改答案以使其完全正确。
    • 伟大的工作。希望 Titanium 做些事情来简化这一点。
    • 我无法使用该代码创建Widget。当然,没有相关文档。
    【解决方案2】:

    在搜索类似内容时遇到了您的问题。不幸的是,选择的答案不是我正在寻找的解决方案,因为我正在编写一个 commonJS 并且需要相同的这个。如果您正在编写 commonJS(但仍在 Alloy 项目下),您可以使用以下解决方案:

    var l = Alloy.UI.create("index", "Label", {
       title: "sometext",
       classes: ["header"],
    });
    

    "index" 是 Alloy 从您的 app.tss 文件生成的。

    【讨论】:

      猜你喜欢
      • 2016-07-25
      • 2011-07-25
      • 2023-02-22
      • 2018-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多