Как установить минимальную высоту recyclerview wrap_content, но максимум в процентах, используя макет ограничения?

#android #android-layout #android-recyclerview #android-constraintlayout

#Android #android-layout #android-recyclerview #android-constraintlayout

Вопрос:

У меня есть recyclerview, и я использую макет ограничения. Теперь я хочу использовать height как wrap_content, но хочу установить максимальную высоту в процентах.Как я могу добиться этого, используя макет ограничения?

    <androidx.recyclerview.widget.RecyclerView
    android:id="@ id/recyclerView"
    android:layout_width="match_parent"
    android:visibility="gone"

    app:layout_constraintTop_toBottomOf="@ id/search_view"

    android:layout_height="0dp"
    app:layout_constraintHeight_default="wrap"
    app:layout_constraintHeight_max="500dp"
    android:scrollbars="vertical"/>
  

Комментарии:

1. Что происходит, когда содержимое превышает максимальную высоту?

2. @FrancescoBocci тогда его содержимое работает нормально

3. используйте руководство в макете ограничения и измените единицу измерения на процент и ограничьте представление recycler на руководство

Ответ №1:

Поскольку вы используете ConstraintLayout , вы можете использовать a Guideline как следующее для ограничения RecyclerView's высоты.

 <androidx.constraintlayout.widget.Guideline
        android:id="@ id/guideline3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.85"/>

    <androidx.recyclerview.widget.RecyclerView
        android:id="@ id/recyclerView"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:scrollbars="vertical"
        app:layout_constraintTop_toBottomOf="@ id/search_view"
        app:layout_constraintBottom_toBottomOf="@id/guideline3" />
  

В Guideline нем есть a layout_constraintGuide_percent , в котором вы можете указать процент, который вы хотите для RecyclerView .