¿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.

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

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

    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
    Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
    Licensed under cc by-sa 3.0 with attribution required.