2015-03-11 10 views
89

C'è un modo per aggiungere un semplice header/footer a RecyclerView?

Qui puoi vedere cosa ho. La prima carta tocca la barra degli strumenti This is what I've got

E qui puoi vedere quello che voglio. 8dp Padding tra il fondo e la scheda. This is what I want to have

Come aggiungere un semplice header/footer 8dp su Android RecyclerView?

metodi che ho provato finora:

  • utilizzare una visualizzazione di testa nella mia recyclerview. Ma penso che sia molto poco efficiente farlo per ogni riciclato.

  • utilizzare un margine superiore di 8 dpi che si traduce nel problema che il recyclerview ha barre bianche in alto/in basso durante lo scorrimento.

  • aggiungere un riempimento alla voce dell'elenco che si traduce in diversi margini tra le carte esterne e interne.

  • Sono sicuro che esiste una soluzione semplice che non conosco finora.

    risposta

    282

    L'aggiunta di un'imbottitura superiore e l'impostazione di clipToPadding su false eseguiranno il trucco.
    Qualcosa di simile a questo:

    <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

    Funziona per la parte superiore, ma per qualche motivo non il fondo. – Benjamin

    +4

    Quale versione della libreria di supporto stai usando? Impostazione paddingBottom funziona bene per me. – Estel

    +2

    non funziona per me su api 23. Sto cercando android: paddingBottom = "8dp" android: clipToPadding = "false" – techtinkerer

    1

    Se si utilizza un RecyclerView con un layout_weight, e paddingBottom non funziona per voi, avendo cura di impostare la layout_height a 0dp! Altrimenti, stranamente, paddingTop funziona, ma Padding non lo fa:

    <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

    grazie a @GregEnnis – eskalera

    +0

    Impostando l'altezza su 0dp la vista scompare. Mi sto perdendo qualcosa qui? – Sagar