Установите layout_column и layout_row в GridLayout программно
У меня есть GridLayout (а не GridView), где я хочу добавить некоторые виды с помощью специальной строки и столбца inex. В 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());
Ответы
Ответ 1
Эквивалент 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)));
Ответ 2
Вам нужно сделать что-то вроде этого:
GridLayout gridLayout = new GridLayout(this);
gridLayout.setColumnCount(2);
gridLayout.setRowCount(4);