我有一个小问题......这是我的代码..有一种方法可以“均匀地分配权重”,这些按钮是我制作的......我试着button[i].setWidth()
..但当我转过身来我的手机看起来很丑..那么是否有分配按钮宽度自动?
ViewGroup row1 = (ViewGroup)findViewById(R.id.TableRow02);
ViewGroup row2 = (ViewGroup)findViewById(R.id.TableRow04);
ViewGroup row3 = (ViewGroup)findViewById(R.id.TableRow06);
ViewGroup row4 = (ViewGroup)findViewById(R.id.TableRow08);
ViewGroup row5 = (ViewGroup)findViewById(R.id.TableRow10);
Button button[] = new Button[36];
for(int i=1;i<36;i++)
{
button[i] = new Button(this);
if(i==32||i==33||i==34||i==35){button[i].setVisibility(-1);}
button[i].setText("700€");
button[i].setTextSize(10);
button[i].setWidth(20);
// Insert buttons in rows
if(i<8){row1.addView(button[i]);}
else if(i<15){row2.addView(button[i]);}
else if(i<22){row3.addView(button[i]);}
else if(i<29){row4.addView(button[i]);}
else if(i<36){row5.addView(button[i]);}
}
答案 0 :(得分:4)
从战术上讲,将按钮放在LinearLayout
中并为每个按钮设置android:layout_weight="1"
。
战略上,设计一个不错的用户界面,不涉及一排36个按钮。
答案 1 :(得分:0)
正如CommonsWare所说,您应该考虑设置按钮的重量参数,而不是设置宽度,以实现灵活的布局。
如果要以编程方式实现此目的(即在代码中而不是在XML布局中),可以使用按钮的setLayoutParams
方法。我没有测试过,但这样的事情应该有效:
// outside of loop
LayoutParams p = new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT,
1.0
);
....
// enter loop
....
button[i].setLayoutParams(p);
在此示例中,1.0
表示权重。其他两个参数代表layout_width
和layout_height
参数。
但严重的是,我无法想象具有36个按钮的布局非常人性化: - )