Для начала, я не вижу, чтобы вы пытались добавить какие-либо ограничения к размерам первого вида.Если вы хотите, чтобы он имел фиксированное соотношение сторон 3: 4, вам следует установить app:layout_constraintDimensionRatio="H,3:4"
на желаемое представление и удалить app:layout_constraintDimensionRatio="0.75".
. Поэтому вам больше не понадобится представление заполнителя.Таким образом, ваш макет будет выглядеть примерно так:
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/view1"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintDimensionRatio="H,3:4"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/view2"
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/view1" />
Но если вы хотите сохранить высоту вида view1 до 75%, то вам следует заменить вид местозаполнителя горизонтальной направляющей, на которую вы устанавливаетеapp:layout_constraintGuide_percent="0.75"
.Таким образом, макет будет выглядеть так:
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/view1"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@id/guideline"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.75" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/view2"
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/view1" />
Также имейте в виду, что использование match_parent
внутри ConstraintLayout
не рекомендуется.Вместо этого используйте размер 0dp высота / ширина и установите соответствующее ограничение для полей в зависимости от регистра (верх, низ / начало, конец)