2

私は Appcelerator Titanium を使用しており、Android アプリケーションを作成したいと考えています。4行のTableViewを作成しました。各行に 3 つのラベルを配置し、ラベルを均等に配置したいと考えています。(1 番目のラベルは左に、2 番目は中央に、3 番目は行の右側に配置する必要があります。) ありがとうございます。

4

3 に答える 3

1

左、中央、右の場合、相対的な配置とテキストの配置を使用して、行を非常に簡単に作成できます。このアプローチは、現在の画面の幅に関係なくうまく機能します (つまり、これはタブレット、電話、テレビなどで機能します)。

var win = Ti.UI.createWindow({
    backgroundColor: '#fff'
});

var rows = [];

for (var i = 0; i < 10; i++) {
    var row = Ti.UI.createTableViewRow();
    row.add(Ti.UI.createLabel({
        text: 'Left ' + i, textAlign: 'left',
        color: '#000',
        left: 10
    }));
    row.add(Ti.UI.createLabel({
        text: 'Center ' + i, textAlign: 'center',
        color: '#000'
    }));
    row.add(Ti.UI.createLabel({
        text: 'Right ' + i, textAlign: 'right',
        color: '#000',
        right: 10
    }));
    rows.push(row);
}

win.add(Ti.UI.createTableView({
    data: rows
}));

win.open();

left: '0%', width: '33%'別のオプションは、 、 thenleft: '33%', width: '33%'などのパーセント幅を使用することです。

または、最初のラベルは からのものであると言えますleft: 0, width: 200。2 番目はleft: 200, width: 50、3 番目は からleft: 250, right: 0です。これにより、伸縮性のある 3 番目のラベルが作成されるため、すべてのスペースを占有できます。

さらに別のオプション (お勧めしません) はTi.Platform.displayCaps.platformWidth、それに基づいて行要素を使用して配置することです。しかし、それはオリエンテーションの変更に対して非常に脆弱です。

それはすべてあなたのコンテンツに依存します。これらがあれば、特定のユースケースを処理できるはずです。

于 2012-06-25T19:18:41.570 に答える
1

これが私が最近この問題を解決した方法です。各行内に 3 つの個別のビューとラベルがあります。これは私にとって非常にうまくいきました!それらはすべてパーセントに基づいているため、すべての解像度で機能するはずです。幸運を!

for (var i = 0; i < 4; i++) {
var row = Ti.UI.createTableViewRow({
  height: 'auto',
});
  var view1 = Ti.UI.createView({
  left : 0,
  width : "33.33%",
  backgroundColor:'red',
  height:40
  });
var label1 = Ti.UI.createLabel({
  text: 'here',
  color:"#fff",
  textAlign: Ti.UI.TEXT_ALIGNMENT_LEFT    

});

view1.add(label1);
  var view2 = Ti.UI.createView({
  left : "33.33%",
  width : "33.33%",
  backgroundColor : "white",
  height:40 
  });
var label2 = Ti.UI.createLabel({
  text: 'there',
  color:"#fff"    
});
view2.add(label2);

var view3 = Ti.UI.createView({
  left : "66.66%",
  width : "33.33%",
  backgroundColor: "blue",
  height:40          
  });
var label3 = Ti.UI.createLabel({
  text: 'Everywhere',
  color:"#fff"        
});
view3.add(label3);

row.add(view1);
row.add(view2);
row.add(view3);

}

于 2012-06-26T15:33:58.447 に答える