Como adicionar um cabeçalho / rodapé 8dp simples ao RecyclerView do Android?

133

Existe uma maneira de adicionar um cabeçalho / rodapé simples a um RecyclerView?

Aqui você pode ver o que eu tenho. O primeiro cartão toca na barra de ferramentas Isto é o que eu tenho

E aqui você pode ver o que eu quero. 8dp Padding entre a parte inferior e o cartão. É isso que eu quero ter

Métodos que eu tentei até agora:

  • Use uma exibição de cabeçalho na minha visão de reciclagem. Mas eu acho que é muito ineficiente fazer isso para cada revisão de reciclagem.

  • use uma margem superior de 8dp que resulte no problema de a vista da reciclagem ter barras brancas na parte superior / inferior ao rolar.

  • adicione um preenchimento ao item da lista que resulte em margens diferentes entre os cartões externo e interno.

  • Tenho certeza de que existe uma solução simples que ainda não conheço.

    Philipp Schumann
    fonte

    Respostas:

    403

    Adicionar um preenchimento superior e definir clipToPaddingcomo false fará o truque.
    Algo assim:

      <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
    fonte
    9
    Funciona para o topo, mas, por algum motivo, não para o fundo.
    Benjamin
    4
    Qual versão da biblioteca de suporte você está usando? Definir paddingBottom funciona bem para mim.
    Estel
    2
    não funciona para mim também em api 23. Estou tentando android: paddingBottom = "8DP" android: clipToPadding = "false"
    techtinkerer
    1
    paddingBottom Funciona para mim, recyclerview-v7-25.3.1
    Nino van Hooff
    1
    Esta solução corta a barra de rolagem. Alguma solução para isso?
    Sebastian
    2

    Se você estiver usando um RecyclerView com a layout_weighte paddingBottomnão estiver funcionando, certifique-se de definir o layout_height como 0dp! Caso contrário, estranhamente, paddingTop funciona, mas paddingBottom não:

    <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
    fonte
    Definir a altura para 0dp faz com que a vista desapareça. Estou faltando alguma coisa aqui?
    Sagar
    Apenas remova weight = "1" e defina layout_height como match_parent
    Mike