Добавить пространство сверху и снизу GridView

Я хотел бы добавить пространство в верхнюю и нижнюю часть GridView, похожие на верхний/нижний колонтитул, но я хотел только поддерживать пробелы и ничего больше.

В настоящее время я использую верхнее/нижнее дополнение, но при прокрутке содержимое будет обрезано в дополняющей части.

Какое самое простое решение для этого? Спасибо!

Ответ 1

Вместо использования paddings (который добавляет пробел внутри вашего представления) используйте поля (которые добавляют пробел ouside > ваш вид):

добавить

android:layout_marginTop="40dp"
android:layout_marginBottom="40dp"

для вашего GridView (или другого значения)

[EDIT]

В соответствии с разъяснением ОП: "пробелы" должны быть FIXED и все прокручиваемые GridView.
Поэтому я проектирую его так (установив пару привязанных TextViews как фиксированный верхний и нижний колонтитулы):

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/black"
    android:padding="8dp"
    >
    <!-- Header -->
    <TextView
        android:id="@+id/txtHeader"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:layout_alignParentTop="true"
        android:background="#ff00"
        android:gravity="center"
        android:text="Header"
        android:textColor="@android:color/white"
        android:textSize="24sp"
        android:textStyle="bold"
    />
    <!-- Footer -->
    <TextView
        android:id="@+id/txtFooter"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:layout_alignParentBottom="true"
        android:background="#ff00"
        android:gravity="center"
        android:text="Footer"
        android:textColor="@android:color/white"
        android:textSize="24sp"
        android:textStyle="bold"
    />
    <!-- The Grid -->
<!--    <GridView -->
<!--        android:id="@+id/grdIcons" -->
<!--        android:layout_width="match_parent" -->
<!--        android:layout_height="match_parent" -->
<!--        android:layout_above="@id/txtFooter" -->
<!--        android:layout_below="@id/txtHeader" -->
<!--        android:background="#f0f0" -->
<!--        android:textColor="@android:color/white" -->
<!--        android:textSize="24sp" -->
<!--        android:textStyle="bold" -->
<!--    /> -->
    <GridView
        android:id="@+id/grdIcons"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@id/txtFooter"
        android:layout_below="@id/txtHeader"
        android:background="#f00f"
        android:textColor="@android:color/white"
        android:textSize="24sp"
        android:textStyle="bold"

        android:columnWidth="64dp"
        android:numColumns="auto_fit"
        android:verticalSpacing="8dp"
        android:horizontalSpacing="8dp"
        android:stretchMode="none"
        android:gravity="center"
    />

</RelativeLayout>

В этом примере заголовки видны (красный и с текстом), но вы всегда можете отрезать часть относительно текстовых атрибутов и установить цвет # 0000 (прозрачный)

Здесь результат:

enter image description hereenter image description here

Ответ 2

Если вы правильно поняли, это должно выглядеть так:

Для этого здесь простое решение Maciej: Как добавить дополнительное пространство внутри дна GridView

Вам просто нужно добавить следующее в макет GridView:

<GridView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="50dp"
android:paddingBottom="50dp"
android:clipToPadding="false"/>

Наиболее важной частью является атрибут clipToPadding, который должен быть установлен в false.

Вы также можете увидеть соответствующее сообщение в блоге от Google, где упомянуто это решение: https://plus.google.com/+AndroidDevelopers/posts/LpAA7q4jw9M