我一直在研究多平台移动应用程序。我几乎完成了它,但我总是在 iOS 上测试(因为原因)。现在我可以在 Android 上进行测试,发现它在很多方面都失败了。
这里的主要问题是当我使用时:
alloy.createSomeElement({
//params
})
$.someView.add(someElemet);
元素未添加到视图中。正如我所提到的,这只发生在Android上,在iOS上运行得很好。
在这里,我向您展示了一个示例,它在两个平台上都有结果。
e.json.forEach(function(address) {
var addressView = Ti.UI.createView({
height : Ti.UI.SIZE,
width : '90%',
layout : 'horizontal',
touchEnabled : true,
Address_id : address.id
});
var icoCont = Ti.UI.createView({
height : 20,
width : '10%'
});
var icon = Ti.UI.createImageView({
height : '20',
width : '20',
image : "/compartidos/persona3.png",
touchEnabled : false
});
var addressText = Ti.UI.createLabel({
height : Ti.UI.SIZE,
width : Ti.UI.FILL,
left : 1,
text : address.street + " - " + address.ext_number,
font : {
fontSize : 12,
fontFamily : "Nunito-Bold",
},
touchEnabled : false,
color: "#000"
});
if (address.alias)
addressText.text = address.alias;
var separator = Ti.UI.createView({
height : 5,
width : '100%',
top : 5,
bottom : 5,
backgroundColor : '#8C000000',
touchEnabled : false
});
addressView.add(icoCont, addressText);
icoCont.add(icon);
$.container.add(addressView, separator);
});
iOS上的结果:result on iOS
这在Android上:result on Android
我真的希望你能帮助我。
注意:Nuevadirección和Dirección不是以这种方式生成的,它们存在于xml文件中。
答案 0 :(得分:0)
经过长时间的尝试和解决后,我解决了我的问题。错误。我发布我的解决方案只是为了有人遇到同样的问题。
似乎在Android中我无法像这样在单个指令中添加多个元素
addressView.add(icoCont, addressText);
我唯一需要做的就是将它分成2个(每个元素一个),如此
addressView.add(icoCont);
addressView.add(addressText);
答案 1 :(得分:0)
您可以在单个add语句中添加许多视图,但是您需要将它们作为数组传递,如: addressView.add([icoCont,addressText]);