Titanium Appcelerator Alloy不支持窗体小部件的formFactor样式

时间:2014-03-06 06:34:57

标签: ios widget titanium titanium-alloy titanium-widgets

我开发了一个示例代码,在其中我创建了一个窗口小部件,其中只有一个视图,可以在其中添加图像视图。当我直接从控制器的tss应用样式时,它工作得很完美,但是当使用“formFactor”时,它不起作用。为了澄清相同的问题,请检查此处的代码。

您可以创建一个新的Alloy项目并使用以下代码对其进行测试:

  

注意:所有依赖项都包含在config.json

小工具实施:

widget.xml

<Alloy>
   <View id="section" class="section"></View>
</Alloy>


widget.tss

".section":{
    backgroundColor: 'red',
    layout : 'vertical'
},


widget.js

var args = arguments[0] || {};
$.section.applyProperties(args);

$.setData = function(view) {
    $.section.add(view);
}

索引页面编码

Index.xml

<Alloy>
<ScrollView class="baseView">
    <Widget id="contentView" class="contentView" src="com.investis.scrollablesection"></Widget>
</ScrollView>
</Alloy>


Index.tss

".contentView [formFactor=handheld]":{
    backgroundColor: 'green',
    width: Ti.UI.FILL,
    height: Ti.UI.SIZE
}

Index.js

var imgView = Ti.UI.createView({
    backgroundColor: 'yellow',
    top: 20,
    left: 0,
    right: 0,
    width: Ti.UI.FILL,
    height: Ti.UI.SIZE
});
$.contentView.setData(imgView);

如果我从[formFactor=handheld]中的.contentView移除Index.tss

,则同样有效

1 个答案:

答案 0 :(得分:0)

您的回答中遗漏了一些关键细节,例如您正在构建什么平台,您正在使用的Titanium SDK版本,以及您不清楚与您认为的问题相比您的期望。

使用你的代码,为iOS模拟器构建,我得到一个绿色的滚动视图填充屏幕的宽度,大约20dp高 - 在index.tss类上有或没有[formFactor = handheld]限定符。如果我增加scrollview的高度,我会看到一个黄色视图。那么,问题是什么?