2016-08-03 11 views
1

と私はXMLでCOLSPANとROWSPANオプションでのGridLayoutを作成することができますGridLayoutの、 しかし、私はプログラムでは動作しません同じことをやりたい、ここに私のコードはAndroidは、プログラムCOLSPANとROWSPAN

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); 
です

enter image description here

答えて

0

答えを

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); 
} 
+0

おかげで、私の場合は、SOMを作成するために、私は希望のループを使用する必要はありません。次のコードを試してみてくださいeビューを作成し、特定のrow、column、rowspan、colspanを持つgridlayoutに追加します。他のセルは空白になります。 – StraightforwardDev

関連する問題