[英]Set rowSpan or colSpan of a child of a GridLayout programmatically?
[英]Android gridlayout programmatically with colspan and rowspan
我可以通過xml創建一個帶有colspan和rowspan選項的gridlayout,但是當我想以編程方式執行相同的操作時它不起作用,這是我的代碼
int column = 3;
int row = 3;
gridLayout.setColumnCount(column);
gridLayout.setRowCount(row);
Button btn1 = new Button(this);
btn1.setBackgroundColor(Color.BLUE);
btn1.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
GridLayout.LayoutParams lParams = new GridLayout.LayoutParams(btn1.getLayoutParams());
lParams.rowSpec = GridLayout.spec(0, 2);
lParams.columnSpec = GridLayout.spec(0, 3);
gridLayout.addView(btn1,lParams);
嘗試以下代碼
int row= 3;
int column = 3;
int row = row/ column;
gridLayout.setColumnCount(column);
gridLayout.setRowCount(row + 1);
for(int i =0, c = 0, r = 0; i < total; i++, c++)
{
if(c == column)
{
c = 0;
r++;
}
Button btn1= new Button(this);
//If required set image other wise leave it
btn1.setImageResource(R.drawable.ic_launcher);
GridLayout.LayoutParams param =new GridLayout.LayoutParams();
param.height = LayoutParams.WRAP_CONTENT;
param.width = LayoutParams.WRAP_CONTENT;
param.rightMargin = 5;
param.topMargin = 5;
param.setGravity(Gravity.CENTER);
param.columnSpec = GridLayout.spec(c);
param.rowSpec = GridLayout.spec(r);
btn1.setLayoutParams (param);
gridLayout.addView(oImageView);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.