Как правильно использовать gridView? - PullRequest
0 голосов
/ 03 октября 2019

Я разрабатываю приложение в java, android studio.

Для тестирования я использую планшет 10 'и планшет 7'.

На всех экранах я использовал макет ограничения, всегда избегая использования фиксированных размеров, чтобы оставаться отзывчивым.

Моя проблема в gridView. Как вы знаете, есть свойство

android: numColumns = "4"

Отвечает за определение количества предметов по горизонтали. Я не могу передать этот атрибут, потому что сумма должна быть той, которая подходит ... однако, если я опускаю сетку, это один столбец.

Как я могу это сделать? enter image description here

<GridView
        android:id="@+id/gvMesas"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="8dp"
        android:numColumns="4"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/layoutcinza"
        app:layout_constraintTop_toBottomOf="@+id/pnlTopo">

    </GridView>

Ответы [ 2 ]

0 голосов
/ 10 октября 2019

Я решил, используя код ниже. Таким образом, количество столбцов определяется доступным пространством.

android:numColumns="auto_fit"
0 голосов
/ 04 октября 2019

Я бы порекомендовал создавать пользовательские макеты для каждой конфигурации экрана, которую вы хотите поддерживать.

Вы можете предоставить макеты для конкретного экрана, создав дополнительные res / layout / directory - по одному для каждой конфигурации экрана, котораятребуется другой макет, а затем добавьте спецификатор конфигурации экрана к имени каталога макетов (например, layout-w600dp для экранов с доступной шириной 600dp).

См. https://developer.android.com/training/multiscreen/screensizes

Если вы хотите сделать это по коду, вы сделаете это

GridView gridview = (GridView) findViewById(R.id.gvMesas);
gridview.setNumColumns(4);

https://developer.android.com/reference/android/widget/GridView#setNumColumns(int)

...