Какой stretchMode использовать в GridView на Android

Ниже приведен мой xml-код:

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gridviewgallery"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:columnWidth="@dimen/gridview_column_width"
    android:numColumns="auto_fit"
    android:verticalSpacing="0dp"
    android:horizontalSpacing="0dp"
    android:stretchMode="columnWidth"
    android:gravity="center"
    android:background="#444444"
/>

Когда я использую android: stretchMode = "columnWidth", он создает разрыв между столбцами (хотя он заполняет ширину экрана) И если я использую android: stretchMode = "none", он выравнивается влево и на правой стороне экрана остается пробел (хотя теперь между столбцами нет разрыва) Проблема в том, что я хочу: для заполнения ширины экрана, а также отсутствия разрыва между столбцами. Как его достичь?

Ответ 1

Комбинация android:numColumns="auto_fit" android:stretchMode="columnWidth" и android:columnWidth="60dp" даст вам макет, который настраивается для разных размеров экрана. Гораздо лучше, чем фиксировать количество столбцов. См. Пример ниже...

<GridView
        android:id="@+id/tablegrid"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ffff7965"
        android:horizontalSpacing="5dp"
        android:verticalSpacing="5dp"
        android:layout_marginStart="5dp"
        android:layout_marginLeft="5dp"
        android:numColumns="auto_fit"
        android:stretchMode="columnWidth"
        android:gravity="center"
        android:columnWidth="60dp"
        />

Ответ 2

Это очень простой чувак, просто удалите строку

android:columnWidth="@dimen/gridview_column_width"

вы можете указать любое количество столбцов, мне задан номер столбца = 4

android:numColumns = "4"

Это отлично работает для меня

Ответ 3

Я знаю, что этот вопрос немного стар, но вот ответ, который я нашел, надеюсь, что это поможет кому-то другому, только для android:stretchMode использовать spacingWidthUniform, как он говорит в документации здесь он будет равномерно распределять между столбцами.

для получения дополнительной информации см. ссылку выше.