Подход с Guidelines
, который вы описываете, вероятно, будет способом сделать это с использованием более старой версии ConstraintLayout
, как обсуждалось в теме, которую вы связали. Теперь, когда ConstraintLayout-1.1.0
отсутствует, можно установить процентные измерения для представлений, используя app:layout_constraintHeight_percent
и app:layout_constraintWidth_percent
.
В вашем случае лучшим подходом, на мой взгляд, было бы создание вертикальной цепочки видов и установка желаемой высоты в процентах от родительского для каждого вида. Предполагая, что общий процент высоты всех видов будет меньше 100%, оставшееся пространство будет поровну разделено между видами с использованием атрибута chain_spread_inside
или chain_spread
(по умолчанию).
Пример XML:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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"
tools:context=".MainActivity">
<View
android:id="@+id/view1"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@android:color/holo_orange_dark"
app:layout_constraintVertical_chainStyle="spread_inside"
app:layout_constraintHeight_percent="0.2"
app:layout_constraintBottom_toTopOf="@id/view2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view2"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@android:color/holo_red_dark"
app:layout_constraintHeight_percent="0.3"
app:layout_constraintBottom_toTopOf="@id/view3"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/view1" />
<View
android:id="@+id/view3"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@android:color/holo_blue_dark"
app:layout_constraintHeight_percent="0.1"
app:layout_constraintBottom_toTopOf="@id/view4"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/view2" />
<View
android:id="@+id/view4"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@android:color/holo_green_dark"
app:layout_constraintHeight_percent="0.2"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/view3" />
</android.support.constraint.ConstraintLayout>
Результат с spread_inside
стиль цепочки:
![enter image description here](https://i.stack.imgur.com/8x9rw.png)
и по умолчанию spread
стиль цепочки:
![enter image description here](https://i.stack.imgur.com/wNi4L.png)