Разместите сетку в более чем одном столбце (только в одном)

Ну, я делаю тральщик, и при создании кнопок все они создаются по прямой линии
Здесь я оставляю код, с помощью которого я создаю кнопки, я все еще изучаю Java и Android, поэтому любая критика приветствуется
Размер, который входит в функцию, в порядке (это может быть 8-12-16)
Я думаю, что это ошибка размещения сетки

public void añadirHijos() {
        g = (GridLayout) findViewById(R.id.Grid);
        int TAMaux=(TAM*TAM);
        for (int i = 0; i < TAMaux; i++) {
            int iden;
            iden = i;
            ImageButton b;
            b = new ImageButton(this);
            if (i <= TAMaux) {
                System.out.println(TAM+"añadirHIjos");
                b.setLayoutParams(new ViewGroup.LayoutParams(g.getLayoutParams().width/TAM,g.getLayoutParams().height/TAM));
                b.setId(iden);
                b.setBackgroundResource(R.drawable.tablero);
                g.addView(b, i);
                b.setOnClickListener(this);
                b.setOnLongClickListener(this);
            }
        }
    }

и здесь xml

 <GridLayout
        android:id="@+id/Grid"
        android:layout_width="400dp"
        android:layout_height="400dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.586">
    </GridLayout>
1
задан 28.11.2019, 20:01
2 ответа

Когда число (rows) линий или колонн (columns) не определено в layout, который определяет GridLayout , возможно определять nГєmero этих элементов посредством свойств:

setRowCount (int RowCount)

RowCount, используется только, чтобы производить Г-ndices линии / колонны, предопределенный, когда не estГЎn определенные ими parГЎmetros diseГ±o компонента.

setColumnCount (int columnCount)

ColumnCount, используется только, чтобы производить Г-ndices колонны / колонны, предопределенный, когда не estГЎn определенные ими parГЎmetros diseГ±o компонента.

[1110-]

Пример, где определяются 3 линии и две колонны для GridLayout:

GridLayout g = (GridLayout) findViewById(R.id.Grid);
g.setRowCount(3);
g.setColumnCount(2);
1
ответ дан 01.12.2019, 10:40

стой я это упорядочил с этими двумя линиями

g.setRowCount(TAM);
g.setColumnCount(TAM);
0
ответ дан 01.12.2019, 10:40
  • 1
    Внутри цикла for? Снаружи? Пытайся давать всегда контекст ответам, даже тем, которые для твоего собственного вопроса. – Alfabravo 28.11.2019, 21:41
  • 2
    Вне for, потому что она только надо, нет однажды, хотя я не думаю, что он ничего не перемещает, если ты это помещаешь внутри цикла, потому что tamañ или он не изменился бы – TrustThisRobot 29.11.2019, 17:53