web-dev-qa-db-ja.com

GridViewの上部と下部にスペースを追加します

ヘッダー/フッターと同様に、GridViewの上部と下部にスペースを追加したいのですが、サポートするのはスペースだけで、他には何もありません。

現在、上/下のパディングを使用していますが、スクロールすると、コンテンツがパディング部分でトリミングされます。

これに対する最も簡単な解決策は何ですか?ありがとう!

14
Lim Thye Chean

paddings(スペースを追加するinsideビュー)を使用する代わりに、margins(スペースを追加するousideビュー)を使用します)::

追加

Android:layout_marginTop="40dp"
Android:layout_marginBottom="40dp"

gridView(またはいくつかの異なる値)に

[編集]

OPの説明によると、「スペース」は修正され、すべてのGridViewはスクロール可能である必要があります。
したがって、私は次のように設計しています(固定されたヘッダーとフッターとして機能するように、アンカーされたTextViewのペアを設定することによって):

<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>

この例では、ヘッダーはvisible(赤でテキスト付き)ですが、テキスト属性に関連する部分をいつでも切り取り、色を#00に設定できます。 (トランスペアレント)

結果は次のとおりです。

enter image description hereenter image description here

3
Phantômaxx

私があなたを正しく理解しているなら、それはこのように見えるはずです:

そのための簡単な解決策は、Maciejによってここで言及されています: GridViewの下部に内部に余分なスペースを追加する方法

GridViewレイアウトに以下を追加する必要があります。

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

最も重要な部分は、falseに設定する必要があるclipToPadding属性です。

この解決策が言及されているGoogleからの対応するブログ投稿も見ることができます: https://plus.google.com/+AndroidDevelopers/posts/LpAA7q4jw9M

123
Elementary