web-dev-qa-db-ja.com

プログラムでGridLayoutのlayout_columnとlayout_rowを設定します

特別な行と列のinexを使用していくつかのビューを追加したいGridLayout(GridViewではない)があります。 XMLでは、次のコマンドでビューを設定できます。

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

しかし、どうすれば属性を設定できますかlayout_columnおよびlayout_rowプログラム的に?私はこのようなものが欲しい:

GridLayout grid = new GridLayout(getActivity());

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

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

layout_columnおよびlayout_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)));
17
Craig McMahon