我有一个GridLayout
, 和两个或更多按钮,并且所有按钮必须具有相同的宽度。我的问题是,当按钮的文本行数不同时marginTop
,按钮的按钮也会不同。我怎样才能解决这个问题?我希望所有按钮都处于相同的高度位置。
谢谢。
我已经尝试设置Gravity
,FILL_VERTICAL
但不工作。
GridLayout grid_neighbor = (GridLayout) findViewById(R.id.grid_neighbors);
grid_neighbor.setColumnCount(4);
for (i = 0; i < namelist.length; ++i) {
Button temp = new Button(this);
temp.setText(namelist[i]);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
lp.gravity = Gravity.FILL_VERTICAL;
temp.setLayoutParams(lp);
//temp.setGravity(Gravity.FILL_VERTICAL);
temp.setWidth(button_size);
temp.setHeight(button_size);
grid_neighbor.addView(temp);
}
这是图片:
这现在也有效。
GridLayout grid_neighbor = (GridLayout) findViewById(R.id.grid_neighbors);
grid_neighbor.setColumnCount(4);
for (i = 0; i < namelist.length; ++i) {
Button temp = new Button(this);
temp.setText(namelist[i]);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.ALIGN_TOP, temp.getId());
temp.setLayoutParams(lp);
//temp.setGravity(Gravity.FILL_VERTICAL);
temp.setWidth(button_size);
temp.setHeight(button_size);
grid_neighbor.addView(temp);
}
这会奏效!谢谢。
GridLayout.Spec speccolumn = GridLayout.spec(i%4);
GridLayout.Spec specrow = GridLayout.spec(i/4, GridLayout.TOP);
grid_neighbor.addView(temp, new GridLayout.LayoutParams(specrow, speccolumn));