ConstraintLayout больше не заполняет пробел со вторым представлением, когда первое представление ограничено layout_constraintDimensionRatio - PullRequest
0 голосов
/ 29 мая 2020

Я столкнулся с проблемой при разработке фрагмента с ConstraintLayout. Я хочу, чтобы два представления внутри фрагмента располагались друг над другом, причем вид сверху был ограничен соотношением 4: 3, а нижний - заполнял остальную часть доступного пространства. Итак, я создал следующий макет, ожидая желаемого поведения:

<androidx.constraintlayout.widget.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/view_top"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintBottom_toTopOf="@id/view_bottom"
        app:layout_constraintDimensionRatio="H,4:3"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/view_bottom"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/view_top" />

</ConstraintLayout>

Однако этот макет не дает желаемого эффекта, а вместо этого оставляет промежутки между видами, а также сверху и снизу всего макета:

Undesired gaps in the layout

Почему соотношение применяется к обоим представлениям? Есть ли способ обойти это поведение и ограничить только вид сверху соотношением 4: 3?

1 Ответ

0 голосов
/ 29 мая 2020

При написании этого вопроса я действительно нашел решение, которое ищу. Поскольку высота view_top уже задана через отношение, нет необходимости в ограничении app:layout_constraintBottom_toTopOf="@id/view_bottom". Просто удалив его, достигается желаемое поведение, и представления выглядят следующим образом, без пробелов:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...