私は Appcelerator Titanium を使用しており、Android アプリケーションを作成したいと考えています。4行のTableViewを作成しました。各行に 3 つのラベルを配置し、ラベルを均等に配置したいと考えています。(1 番目のラベルは左に、2 番目は中央に、3 番目は行の右側に配置する必要があります。) ありがとうございます。
3 に答える
左、中央、右の場合、相対的な配置とテキストの配置を使用して、行を非常に簡単に作成できます。このアプローチは、現在の画面の幅に関係なくうまく機能します (つまり、これはタブレット、電話、テレビなどで機能します)。
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
、それに基づいて行要素を使用して配置することです。しかし、それはオリエンテーションの変更に対して非常に脆弱です。
それはすべてあなたのコンテンツに依存します。これらがあれば、特定のユースケースを処理できるはずです。
これが私が最近この問題を解決した方法です。各行内に 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);
}