Wie füge ich Android's RecyclerView eine einfache 8dp-Kopf- / Fußzeile hinzu?

132

Gibt es eine Möglichkeit, einer RecyclerView eine einfache Kopf- / Fußzeile hinzuzufügen?

Hier können Sie sehen, was ich habe. Die erste Karte berührt die Symbolleiste. Das habe ich

Und hier können Sie sehen, was ich will. 8dp Polsterung zwischen der Unterseite und der Karte. Das möchte ich haben

Methoden, die ich bisher ausprobiert habe:

  • Verwenden Sie eine Header-Ansicht in meiner Recycling-Ansicht. Aber ich denke, es ist sehr ineffizient, dies für jede Recycling-Ansicht zu tun.

  • Verwenden Sie einen oberen Rand von 8 dp, was zu dem Problem führt, dass die Recycling-Ansicht beim Scrollen oben / unten weiße Balken aufweist.

  • Fügen Sie dem Listenelement einen Abstand hinzu, der zu unterschiedlichen Rändern zwischen der äußeren und der inneren Karte führt.

  • Ich bin sicher, dass es eine einfache Lösung gibt, die ich bisher nicht kenne.

    Philipp Schumann
    quelle

    Antworten:

    402

    Das Hinzufügen eines oberen Polsters und das Setzen clipToPaddingauf false reichen aus.
    Etwas wie das:

      <android.support.v7.widget.RecyclerView
        android:id="@+id/recyclerview"
        android:paddingTop="8dp"
        android:clipToPadding="false"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    florianmski
    quelle
    9
    Funktioniert für die Oberseite, aber aus irgendeinem Grund nicht für die Unterseite.
    Benjamin
    4
    Welche Version der Support-Bibliothek verwenden Sie? Das Einstellen von paddingBottom funktioniert für mich einwandfrei.
    Estel
    2
    funktioniert auch bei api 23 nicht für mich. Ich versuche android: paddingBottom = "8dp" android: clipToPadding = "false"
    techtinkerer
    1
    paddingBottom Funktioniert für mich, recyclerview-v7-25.3.1
    Nino van Hooff
    1
    Diese Lösung schneidet jedoch die Bildlaufleiste ab. Irgendwelche Lösungen dafür?
    Sebastian
    2

    Wenn Sie eine RecyclerView mit a verwenden layout_weightund paddingBottomnicht für Sie arbeiten, stellen Sie sicher, dass Sie die layout_height auf 0dp! Setzen . Ansonsten funktioniert paddingTop seltsamerweise, paddingBottom jedoch nicht:

    <android.support.v7.widget.RecyclerView android:id="@+id/recycler"
        android:paddingBottom="20dp"
        android:clipToPadding="false"
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="0dp" /> 
    Greg Ennis
    quelle
    Wenn Sie die Höhe auf 0 dp einstellen, wird die Ansicht ausgeblendet. Vermisse ich hier etwas?
    Sagar
    Entfernen Sie einfach weight = "1" und setzen Sie layout_height auf match_parent
    Mike