以编程方式在GridLayout中设置layout_column和layout_row

时间:2013-05-19 22:27:22

标签: android android-xml android-gridlayout

我有一个GridLayout(不是GridView),我想添加一些带有特殊行和列的视图。在XML中,我可以使用以下命令设置视图:

<TextView
    android:id="@+id/textView1"
    android:layout_column="2"
    android:layout_row="4"
    android:text="Large Text" />

但是如何以编程方式设置属性layout_columnlayout_row?我想要这样的东西:

GridLayout grid = new GridLayout(getActivity());

grid.setColumn(2);
grid.setRow(4);

grid.addView(new Button(getActivity());

2 个答案:

答案 0 :(得分:17)

与所有layout_column参数一样,layout_rowlayout_...的等价物将作为LayoutParams的子类的参数找到。

在这种情况下它是GridLayout.LayoutParams,我们就像这样使用它(对于2x2网格,在最后一行和列中有一个子视图,在单元格中居中):

gridLayout.setColumnCount(2);
gridLayout.setRowCount(2);

gridLayout.addView(subview, new GridLayout.LayoutParams(
                              GridLayout.spec(1, GridLayout.CENTER),
                              GridLayout.spec(1, GridLayout.CENTER)));

答案 1 :(得分:-2)

你必须做这样的事情:

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