钛appcelerator合金不支持小部件的FormFactor样式



我已经开发了一个示例代码,其中我创建了一个只有一个视图的窗口小部件,该视图在其中添加了图像视图。当我直接使用控制器TSS的样式时,它可以正常工作,但是当使用" FormFactor"时,它就无法正常工作。要澄清相同的内容,请检查放置在此处的代码。

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

注意:所有依赖项都包含在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);

如果我从 Index.tss

中从 .contentView中删除 [formFactor=handheld],则同样的事情也有效。

缺少答案中的一些关键细节,例如您正在使用的平台,您使用的钛SDK的哪个版本,并且您不清楚比较的期望您认为是问题。

使用您的代码,为iOS模拟器构建,我得到了一个绿色的卷轴,填充了屏幕的宽度,并且在index.tss类上的[formFactor = Handheld]限定符中有或没有[formFactor = HandHeld]限定词。如果我增加滚动浏览的高度,我会看到其中的黄色视图。那么,有什么问题?

最新更新