2015-03-11 13 views
89

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

Hier können Sie sehen, was ich habe. Die erste Karte berührt die Toolbar This is what I've got

Und hier können Sie sehen, was ich will. 8dp Polsterung zwischen dem Boden und der Karte. This is what I want to have

Wie fügt man dem RecyclerView von Android einen einfachen 8dp Header/Footer hinzu?

Methoden Ich habe versucht, so weit:

  • eine Kopfansicht in meinem recyclerview verwenden. Aber ich denke, es ist sehr uneffizient, dies für jede Recycling-Ansicht zu tun.

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

  • fügen Sie dem Listenelement eine Auffüllung hinzu, die zu unterschiedlichen Rändern zwischen der äußeren und der inneren Karte führt.

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

    Antwort

    282

    Hinzufügen eines oberen Auffüllens und Einstellung clipToPadding auf false wird den Trick tun.
    Etwas wie folgt aus:

    <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" /> 
    
    +8

    Funktioniert für die Spitze, aber aus irgendeinem Grund nicht die Unterseite. – Benjamin

    +4

    Welche Version der Support-Bibliothek verwenden Sie? Das Einstellen von paddingBottom funktioniert gut für mich. – Estel

    +2

    funktioniert nicht für mich entweder auf api 23. Ich versuche android: paddingBottom = "8dp" android: clipToPadding = "false" – techtinkerer

    1

    Wenn Sie eine RecyclerView mit einem layout_weight verwenden und paddingBottom ist nicht für Sie arbeiten, dafür, dass Sie die layout_height zu 0dp gesetzt! Sonst funktioniert paddingTop merkwürdig, aber paddingBottom funktioniert 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" /> 
    
    +0

    danke @GregEnnis – eskalera

    +0

    Setzen Sie die Höhe auf 0dp macht die Ansicht verschwinden. Fehle ich hier etwas? – Sagar