Android Студия: Непонятно позиционирован макет - PullRequest
1 голос
/ 12 июля 2020

Я уже давно пробовал, но просто не понимаю, почему «layout3» простирается до края элемента root, а не только до правого края «layout2», как я хотел к. Вот код XML:

<?xml version="1.0" encoding="utf-8"?>

<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:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_marginBottom="50dp"
android:id="@+id/layout1">

<TextView
    android:layout_width="224dp"
    android:layout_height="159dp"
    app:layout_constraintTop_toTopOf="parent"
    android:layout_marginTop="184dp"
    app:layout_constraintVertical_bias="0.5"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.5"
    android:id="@+id/textview1"/>

<LinearLayout
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:layout_constraintTop_toBottomOf="@+id/textview1"
    android:layout_marginTop="20dp"
    app:layout_constraintStart_toStartOf="@id/layout1"
    app:layout_constraintEnd_toEndOf="@id/layout1"
    android:layout_marginEnd="500dp"
    android:id="@+id/layout2">

    <TextView
        android:layout_width="224dp"
        android:layout_height="159dp"
        android:layout_marginTop="20dp"
        android:layout_marginBottom="20dp"
        android:layout_marginStart="20dp"
        android:id="@+id/textview2"/>

</LinearLayout>

<LinearLayout
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="100dp"
    app:layout_constraintTop_toBottomOf="@+id/textview1"
    android:layout_marginTop="20dp"
    app:layout_constraintStart_toEndOf="@id/layout2"
    app:layout_constraintEnd_toEndOf="@id/layout1"
    android:id="@+id/layout3">

</LinearLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

Вот картинка из редактора:

1 Ответ

0 голосов
/ 12 июля 2020

В layout3 вместо

 android:layout_width="match_parent"

напишите:

 android:layout_width="0dp"

, и он будет размещен рядом с верхней частью layout2.

В случае, если вы Интересно, как у него широкий диапазон даже с width=0dp, это из-за этих 2 ограничений:

app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/layout2"

Они вытягивают LinearLayout на 2 противоположные стороны, и в результате он разворачивается.

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