Какой 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
, как он говорит в документации здесь он будет равномерно распределять между столбцами.
для получения дополнительной информации см. ссылку выше.