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

Cil*_*nco 13 android android-xml android-gridlayout

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

<TextView
    android:id="@+id/textView1"
    android:layout_column="2"
    android:layout_row="4"
    android:text="Large Text" />
Run Code Online (Sandbox Code Playgroud)

但我怎么能设置的属性layout_columnlayout_row程序?我想要这样的东西:

GridLayout grid = new GridLayout(getActivity());

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

grid.addView(new Button(getActivity());
Run Code Online (Sandbox Code Playgroud)

Cra*_*hon 17

与所有参数相同的layout_columnlayout_row,作为layout_...子类的参数被找到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)));
Run Code Online (Sandbox Code Playgroud)