私はマルチプラットフォームのモバイルアプリケーションで作業しています。私はほとんどそれを終えたが、私はいつもiOS(理由のために)でテストした。今度はAndroidでテストして、多くの点で失敗していることを確認できました。Appcelerator:アンドロイドのビューに要素が追加されない
alloy.createSomeElement({
//params
})
$.someView.add(someElemet);
要素がビューに追加されていません。
ここでの主な問題は、私が使用している場合ということです。私が言及したように、これはAndroidでのみ発生し、iOS上で正常に動作します。
ここでは例を示し、両方のプラットフォームでの結果です。 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);
});
結果:Android上でresult on iOS
そして、この:result on Android
私は本当にあなたがこれで私を助けることができると思います。
注:NuevadirecciónとDirecciónは実際には生成されません。これらはxmlファイルに存在します。
Alloyデータバインディングを使用すると、作成しているコードの量を大幅に減らすことができます。シンプルなモックライブラリとBackbone Modelsとコレクションを使用することで、コントローラ内のJSの1行でコードを置き換え、XMLとTSSを単純化することができます。 結果はコードが少なくなり、合金のデータバインディングが提供するすべての機能を活用できます。 小さなモックライブラリを使って配列をコレクションに変換する[Todoの簡単なアプリケーションの例](https://github.com/appcdev/imagine-workshops-todo)があります。 – jasonkneen
ありがとう、私はこのアプリケーションを後で改良するつもりですが、締め切りはとても近く、私はできるだけ早く終了しなければなりません。 –