Я пытаюсь нарисовать два вида, один из которых будет перекрывать другой, используя компоновки ограничений и, constraint_guidelines и app:layout_constraintDimensionRatio="h, 1:1"
для их определения размера (это потому, что я буду использовать собственные представления, которым нужно знать ихсобственный размер при рисовании)
Я пытаюсь ограничить верх и низ одного макета к низу другого, чтобы обеспечить их позиционирование относительно друг друга, но кажется, как только я использую match_parent для ихразмеры, ограничения не позволяют им накладываться друг на друга.
Вот как я бы хотел, чтобы они выложились;
Обратите внимание, был сделан снимок экрана вышес меньшим размером imageView, помещенным вручную
. Таким образом, они размещают макеты как со вторыми размерами изображений, равными match_parent, так и с установленным соотношением
Это то же самое, нос высотой / шириной меньшего представления изображения, установленного на 120dp, а не match_parent
Если бы мне пришлось угадывать, я бы сказал, что проблема в том, что я одновременно пытаюсьВысота atch с ограничением, которое приведет к высоте 0dp, и при этом даст ему коэффициент, который гарантирует, что его высота соответствует ширине между направляющими.
Ниже приведен XML.Если кто-нибудь может сказать мне, как заставить компоновку ограничиваться одной точкой, получая при этом высоту из ширины между направляющими, будет очень признателен
<androidx.constraintlayout.widget.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:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/example_guideline_left_one"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.3"
app:layout_constraintStart_toStartOf="parent" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/onboarding_role_guideline_right_one"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.7"
app:layout_constraintStart_toStartOf="parent" />
<ImageView
android:id="@+id/example_image_one"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@color/colorPrimaryDark"
app:layout_constraintDimensionRatio="h, 1:1"
app:layout_constraintEnd_toStartOf="@+id/onboarding_role_guideline_right_one"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="@+id/example_guideline_left_one"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/example_guideline_left_two"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.55"
app:layout_constraintStart_toStartOf="parent" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/onboarding_role_guideline_right_two"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.85"
app:layout_constraintStart_toStartOf="parent" />
<ImageView
android:id="@+id/example_image_two"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintDimensionRatio="h, 1:1"
app:layout_constraintBottom_toBottomOf="@+id/example_image_one"
app:layout_constraintEnd_toStartOf="@+id/onboarding_role_guideline_right_two"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="@+id/example_guideline_left_two"
app:layout_constraintTop_toBottomOf="@+id/example_image_one" />