自定义网格布局

时间:2018-06-13 08:48:14

标签: android android-gridlayout

我需要显示如下图所示的图块: enter image description here

我能以某种方式自定义GridLayout以编程方式添加此tile吗? 在我的情况下,3和4瓷砖是一个在另一个之下。 我也用相对布局做了这个,但是我有很多条件,代码很难维护。

最诚挚的问候, 奥勒利安

1 个答案:

答案 0 :(得分:0)

gridLayout

    GridLayout gridLayout = new GridLayout(this);
    gridLayout.setColumnCount(5);
    gridLayout.setRowCount(2);

    rootView.addView(gridLayout);

    GridLayout.LayoutParams gridParams = new GridLayout.LayoutParams(GridLayout.spec(0,1),
            GridLayout.spec(0,2));

    Button button = new Button(this);
    button.setText(" button 1");
    button.setWidth(400);
    button.setHeight(200);
    gridLayout.addView(button, gridParams);

    gridParams = new GridLayout.LayoutParams(GridLayout.spec(1),
            GridLayout.spec(0,1));
    Button button1 = new Button(this);
    button1.setText(" button 2");
    button1.setWidth(200);
    button1.setHeight(200);
    gridLayout.addView(button1, gridParams);

    gridParams = new GridLayout.LayoutParams(GridLayout.spec(1),
            GridLayout.spec(1,2));

    Button button2 = new Button(this);
    button2.setText(" button 3");
    button2.setWidth(400);
    button2.setHeight(200);
    gridLayout.addView(button2, gridParams);

    gridParams = new GridLayout.LayoutParams(GridLayout.spec(0,1),
            GridLayout.spec(2,2));

    Button button3 = new Button(this);
    button3.setText(" button 4");
    button3.setWidth(400);
    button3.setHeight(200);
    gridLayout.addView(button3, gridParams);

    gridParams = new GridLayout.LayoutParams(GridLayout.spec(0,2),
            GridLayout.spec(4,1));

    Button button5 = new Button(this);
    button5.setText(" button 5");
    button5.setWidth(200);
    button5.setHeight(400);
    gridLayout.addView(button5, gridParams);