我有一个在表格视图内生成按钮的应用程序,如下所示:
TableLayout table = (TableLayout) findViewById( R.id.tableLayout1 );
for(int i = 0 ; i < Gatorade.getVariant().length ; i++){
int buttonsInRow = 0;
int numRows = table.getChildCount();
TableRow row = null;
if( numRows > 0 ){
row = (TableRow) table.getChildAt( numRows - 1 );
buttonsInRow = row.getChildCount();
}
if( numRows == 0 || buttonsInRow == 3 ){
row = new TableRow( this );
table.addView( row );
buttonsInRow = 0;
}
if( buttonsInRow < 3 ){
Button b = new Button( this );
b.setText(Gatorade.getVariant()[i]);
//b.setWidth(pixels)
//b.setWidth()
row.addView( b, 100, 50 );
}
}
有没有办法以编程方式将按钮宽度设置为
wrap_content
并将高度设置为 match_parent
?
如果这是不可能的,是否有办法以编程方式均匀地间隔行中的按钮?
试试这个:
LayoutParams lp = new TableRow.LayoutParams(android.widget.TableRow.LayoutParams.WRAP_CONTENT,android.widget.TableRow.LayoutParams.MATCH_PARENT);
btn.setLayoutParams(lp);
尝试使用重量按钮。给表行权重和=10。并根据您的要求将其划分为按钮。像 btn1.weight=3; btn2.weight=5;btn3.weight=2;这就像在 HTML 中使用 % 一样。如果你设置 weightsum = 10 这意味着它将使用 100% 的父视图。对按钮使用weight=3 意味着它将使用总行大小的3/10。它仅适用于宽度,因此您需要为分配权重的每个视图设置 width =0。
对于这样的重量使用:
LayoutParams lp = new TableRow.LayoutParams(0,android.widget.TableRow.LayoutParams.MATCH_PARENT,3f);
其中 3f 是重量。但首先在表行中将权重总和设置为 10。
希望有帮助!!!