GridLayout - 删除单元格之间的空格
问题描述:
我想创建一个带有16 x 16个按钮的GridLayout,但是我无法删除按钮之间的空格。GridLayout - 删除单元格之间的空格
我看到this但它没有工作。
这里是我现在想:
public class MyActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_activity);
GridLayout v = (GridLayout)findViewById(R.id.myGrid);
v.setPadding(0, 0, 0, 0);
v.setUseDefaultMargins(false);
v.setAlignmentMode(GridLayout.ALIGN_BOUNDS);
v.setRowOrderPreserved(false);
Random r = new Random();
for (int row = 0; row < 16; row++)
for (int col = 0; col < 16; col++) {
GridLayout.LayoutParams lp = new GridLayout.LayoutParams();
lp.setMargins(0, 0, 0, 0);
lp.rowSpec = GridLayout.spec(row);
lp.columnSpec = GridLayout.spec(col);
lp.width = 40;
lp.height = 40;
Button b = new Button(this);
b.setWidth(40);
b.setHeight(40);
b.setText(Integer.toString(r.nextInt(10)));
b.setPadding(0, 0, 0, 0);
b.setLayoutParams(lp);
v.addView(b, lp);
}
}
截图
任何想法有什么不对?
编辑:我改变了一些按钮为绿色画面的背景是,这是我得到了什么:
显然间距按钮图像的一部分...为什么Android的,为什么呢?
答
因为您希望每个项目都有固定的宽度和固定的高度,所以在这里出现问题。试试这个:
GridLayout.LayoutParams lp = new GridLayout.LayoutParams();
lp.setMargins(0, 0, 0, 0);
lp.rowSpec = GridLayout.spec(row);
lp.columnSpec = GridLayout.spec(col);
//lp.width = 40;
//lp.height = 40;
Button b = new Button(this);
//b.setWidth(40);
//b.setHeight(40);
b.setText(Integer.toString(r.nextInt(10)));
b.setPadding(0, 0, 0, 0);
b.setLayoutParams(lp);
v.addView(b, lp);
}
我无法找到一个构造GridLayout.LayoutParams(INT,INT),但评论“lp.width = 40”,甚至将其设置为GridLayout.LayoutParams.WRAP_CONTENT并没有对我的工作。 –
这个想法是你尝试设置固定的高度和宽度的按钮,所以它出错了。我没有尝试过,但可以删除所有固定的高度和宽度。请看我编辑的答案。 – NamNH