¿Cómo agregar un encabezado / pie de página simple de 8dp a RecyclerView de Android?

133

¿Hay alguna manera de agregar un encabezado / pie de página simple a un RecyclerView?

Aquí puedes ver lo que tengo. La primera tarjeta toca la barra de herramientas Esto es lo que tengo

y aquí puedes ver lo que quiero. 8dp Relleno entre la parte inferior y la tarjeta. Esto es lo que quiero tener

Métodos que probé hasta ahora:

  • Use una vista de encabezado en mi vista de reciclador. Pero creo que es muy poco eficiente hacer esto para cada vista del reciclador.

  • use un margen superior de 8dp que da como resultado el problema de que la vista del reciclador tiene barras blancas en la parte superior / inferior al desplazarse.

  • agregue un relleno al elemento de la lista que da como resultado diferentes márgenes entre las tarjetas externas e internas.

  • Estoy seguro de que hay una solución simple que no conozco hasta ahora.

    Philipp Schumann
    fuente

    Respuestas:

    403

    Agregar un relleno superior y establecerlo clipToPaddingen falso hará el truco.
    Algo como esto:

      <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
    fuente
    9
    Funciona para la parte superior, pero por alguna razón no para la parte inferior.
    Benjamin
    44
    ¿Qué versión de la biblioteca de soporte está utilizando? Establecer paddingBottom funciona bien para mí.
    Estel
    2
    tampoco funciona para mí en la API 23. Estoy intentando android: paddingBottom = "8dp" android: clipToPadding = "false"
    techtinkerer
    1
    paddingBottom funciona para mí, recyclerview-v7-25.3.1
    Nino van Hooff
    1
    Sin embargo, esta solución recorta la barra de desplazamiento. ¿Alguna solución para eso?
    Sebastian
    2

    Si está utilizando un RecyclerView con un layout_weighty paddingBottomno funciona para usted, ¡asegúrese de establecer el layout_height en 0dp! De lo contrario, curiosamente, paddingTop funciona pero paddingBottom no:

    <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
    fuente
    Establecer la altura en 0dp hace que la vista desaparezca. ¿Me estoy perdiendo de algo?
    Sagar
    Simplemente elimine weight = "1" y configure layout_height en match_parent
    Mike