[英]“Distribute weights evenly” in code
我有一个小问题......这是我的代码......有没有办法为我制作的那些按钮“平均分配权重”......我试图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]);}
}
从战术上讲,将按钮放在LinearLayout
中并为每个按钮设置android:layout_weight="1"
。
从战略上讲,设计一个体面的 UI,它不涉及一行 36 个按钮。
正如 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 个按钮的布局非常用户友好:-)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.