调用createLabel时设置类

时间:2013-12-13 18:16:02

标签: titanium titanium-alloy

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

使用Alloy时,我可以指定

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

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

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

但是当我使用SDK版本时:

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

TSS文件的颜色没有被拿起???

我做错了什么。 “班级”不是有效的财产吗? (我似乎无法在文档中找到它。)

2 个答案:

答案 0 :(得分:11)

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

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

更多阅读Dynamic Styles guide。它没有很好的记录,当我阅读它时,它的某些部分对我来说还不清楚,但它是试验代码并学习Alloy行为的良好起点。

答案 1 :(得分:0)

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

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

"index"是来自您app.tss文件的Alloy生成的内容。

相关问题