1

私はチタンでアプリを開発していて、iOSバージョンを正常に完了しました。Androidにはいくつかの問題がありますが、これが1つです。

ビューには、データをA: Bの形式で表示するためのいくつかのラベルが含まれています (Bは太字であることに注意してください)。その大胆な部分が必要であり、2つのラベルが必要な理由です。

これは私が使用しているコードです:

if(restaurant && !(restaurant=='no' && restaurant.length=='2')){
    var restaurant_label = Ti.UI.createLabel({
        text:'Restaurant:',
        left:3,
        height:20,
        width:'auto',
        top:0,
        textAlign:'left',
        color:'#000',
        font:{
            fontFamily:'Helvetica Neue',
            fontSize:13,
            fontWeight:'Regular'
        }
    });
    view.add(restaurant_label);
    var restaurant_value = Ti.UI.createLabel({
        text:restaurant,
        left:restaurant_label.width+10,
        height:'auto',
        width:'auto',
        top:-18,
        textAlign:'left',
        color:'#000',
        font:{
            fontFamily:'Helvetica Neue',
            fontSize:13,
            fontWeight:'Bold',
            fontStyle:'Italic'
        }
    });
    view.add(restaurant_value);
    check_localservices = false;
}

「値」ラベルは適切な場所に配置する必要がありますが、Androidは以前に追加されたラベルの幅を取得できないようです。

何が得られますか?

4

1 に答える 1

0

label.widthクエリによって何が報告されると想定されているかについて、いくつかの質問があったことがバグレポートに表示されます。バージョン1.7のバグレポートによると、Androidでクエリに正しく応答すると、「auto」が返されるはずです。これは、widthの値として「auto」があるためです。'auto'を返しますか?

https://jira.appcelerator.org/browse/TIMOB-3202

たまたま、探している値を取得するための正しいコードがそこにリストされているように見えます。これはテストしていませんが、間違った値をクエリしている可能性があります。

あなたの状況では、あなたが使いたいようです:

var restaurant_value = Ti.UI.createLabel({
        text:restaurant,
        left:restaurant_label.size.width+10, // <===== size
        height:'auto',
        width:'auto',
        top:-18,
        textAlign:'left',
        color:'#000',
        font:{
            fontFamily:'Helvetica Neue',
            fontSize:13,
            fontWeight:'Bold',
            fontStyle:'Italic'
        }
    });

コメントによると、ウィンドウを「開いた」後にsizeプロパティも照会する必要がある場合があります。Paul Dowsettの答えを見ると、彼は「open」イベントのリスナーの例を持っています。

于 2012-09-13T17:14:55.560 に答える