Если вы удалите layout_2
LinearLayout из вашей иерархии представлений, вы сможете делать то, что хотите.
Из вашего вопроса не ясно, требуется ли для включенных макетов родительский элемент LinearLayout
(например, для атрибутов layout_weight
), но я готов поспорить, что даже это можно решить.
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<CheckBox
android:id="@+id/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="@+id/1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="@+id/1"/>
<include
layout="@layout/1"
android:id="@+id/1"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toEndOf="@+id/checkbox"
app:layout_constraintEnd_toEndOf="parent"/>
<include
layout="@layout/2"
android:id="@+id/2"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/1"
app:layout_constraintStart_toEndOf="@+id/checkbox"
app:layout_constraintEnd_toEndOf="parent"/>
<include
layout="@layout/3"
android:id="@+id/3"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/2"
app:layout_constraintStart_toEndOf="@+id/checkbox"
app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
Этот макет помещает представления 1
, 2
и 3
в вертикальную "линию", имитируя LinearLayout. Поскольку теперь они являются одноуровневыми представлениями CheckBox, вы можете ограничить верхнюю и нижнюю части CheckBox сверху и снизу вида 1
, центрируя его вертикально.
Если вы хотите использовать весовые коэффициенты, вы можете добавить нижние ограничения к представлениям 1
, 2
и 3
, чтобы сформировать вертикальную цепочку, а затем вы можете указать атрибут app:layout_constraintVertical_weight
.