web-dev-qa-db-fra.com

rendre la hauteur de RecyclerView à "wrap_content" dans la disposition Contrainte

j'essaie de définir la hauteur de la vue du recycleur sur wrap_content et de le faire respecter cela, mais cela dépassera l'autre widget sur la mise en page. que puis-je faire maintenant?

<Android.support.constraint.ConstraintLayout
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:background="@color/white">



    <TextView
        Android:id="@+id/tvPastRounds"
        Android:layout_width="0dp"
        Android:layout_height="wrap_content"
        Android:layout_marginLeft="16dp"
        Android:layout_marginTop="0dp"
        Android:text="Past Rounds"
        Android:textColor="@color/text_color_black"
        Android:textSize="16sp"
        app:layout_constraintLeft_toLeftOf="parent"/>
    <Android.support.v7.widget.RecyclerView
        Android:id="@+id/recycler_view"
        Android:layout_width="0dp"
        Android:layout_height="0dp"
        Android:layout_marginBottom="24dp"
        Android:layout_marginEnd="8dp"
        Android:layout_marginRight="8dp"
        Android:layout_marginTop="16dp"
        Android:clipChildren="true"
        Android:maxHeight="150dp"

        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintLeft_toLeftOf="@+id/tvPastRounds"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/tvPastRounds" app:layout_constraintVertical_bias="0.0"/>
</Android.support.constraint.ConstraintLayout>
21
ali samawi

j'ai eu le même problème et je trouve cette solution: vous devez ajouter cet attribut à votre recyclerview et cela rend votre recyclerview wrap_content dans le constraint_layout:

app:layout_constraintHeight_default="wrap"

faites-moi savoir si cette solution a résolu votre problème.

EDIT: la hauteur du recycleur doit être de 0dp.

EDIT 2: dans les versions plus récentes de la bibliothèque de support, utilisez ce code:

Android:layout_height="wrap_content"
app:layout_constrainedHeight="true"
51
Reza.Abedini
app:layout_constraintHeight_default="wrap"

est déconseillé dans les versions plus récentes de la bibliothèque de support, alors pensez à utiliser

Android:layout_height="wrap_content"
app:layout_constrainedHeight="true"

au lieu.

11
JohnTheWalker