es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo hacer que Recyclerview recorte a través del fondo de su contenedor RelativeLayout.

He creado un cardview dentro de un recyclerview que utiliza un RelativeLayout como contenedor.

Este es el código XML para MainActivity:

<androidx.constraintlayout.widget.constraintlayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/gradient_background" tools:context=".MainActivity">

<relativelayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/activity_rounded_bg" android:layout_margintop="50dp">

<androidx.recyclerview.widget.recyclerview android:layout_width="match_parent" android:layout_height="match_parent" tools:layout_editor_absolutex="0dp" tools:layout_editor_absolutey="67dp" android:paddingtop="10dp" android:paddinghorizontal="0dp" android:cliptopadding="true" tools:listitem="@layout/cardview_contact_item">

</androidx.recyclerview.widget.recyclerview>

</relativelayout>
<imagebutton android:id="@+id/btnAddContact" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#00FFFFFF" app:layout_constraintbottom_tobottomof="parent" app:layout_constraintend_toendof="parent" app:layout_constrainthorizontal_bias="0.498" app:layout_constraintstart_tostartof="parent" app:layout_constrainttop_totopof="parent" app:layout_constraintvertical_bias="1.0" app:srccompat="@drawable/ic_add_icon"></imagebutton>
</androidx.constraintlayout.widget.constraintlayout>

Quería preguntar cómo puedo usar el fondo de rectángulo redondeado del RelativeLayout como una máscara de recorte para el recycler view, de modo que se recorte en ambos lados.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para utilizar el fondo de rectángulo redondeado de RelativeLayout como máscara de recorte para RecyclerView, puedes configurar el fondo de RelativeLayout como la propiedad clipToPadding de RecyclerView. Esto recortará el contenido dentro de RecyclerView en el área de relleno del RelativeLayout padre.

    Aquí está el código actualizado para RecyclerView en el diseño XML:

    <relativelayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/activity_rounded_bg" android:layout_margintop="50dp">
    
        <androidx.recyclerview.widget.recyclerview android:layout_width="match_parent" android:layout_height="match_parent" android:paddingtop="10dp" android:paddinghorizontal="0dp" android:cliptopadding="false" android:background="@android:color/transparent" android:foreground="@drawable/activity_rounded_bg" tools:listitem="@layout/cardview_contact_item"></androidx.recyclerview.widget.recyclerview>
    
    </relativelayout>
    

    Observa los cambios realizados en los atributos de RecyclerView:

    • android:clipToPadding="false" Esto permite que RecyclerView se extienda más allá del área de relleno del RelativeLayout padre.
    • android:background="@android:color/transparent" Esto establece el color de fondo de RecyclerView como transparente, para que el fondo de RelativeLayout padre se pueda ver a través de él.
    • android:foreground="@drawable/activity_rounded_bg" Esto establece el primer plano de RecyclerView como el drawable de fondo de rectángulo redondeado de RelativeLayout padre, que actúa como máscara de recorte.

Comments are closed.