Контейнер с содержимым для Android, создающий конфликт между детьми и выравнивание по правому краю - PullRequest
0 голосов
/ 23 ноября 2018

Я хочу сделать Layout с шириной wrap_content и внутри него двое детей.Сначала выровняйте по родительскому левому, затем по родительскому правому.Дети должны столкнуться вместе и растянуть родительскую ширину.Вот что я сделал:

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_margin="5dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:minWidth="160dp"
android:background="@android:color/black"
>
<ImageView
    android:id="@+id/status"
    android:layout_width="15dp"
    android:layout_height="15dp"
    android:layout_alignParentLeft="true"
    android:src="@mipmap/waiting" />

<TextView
    app:layout_constraintLeft_toRightOf="@id/status"
    android:id="@+id/date"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:layout_constraintEnd_toEndOf="parent"
    android:text="12:00 PM"
    android:textColor="@color/textColorSecondary"
    android:textSize="12sp" />
</android.support.constraint.ConstraintLayout>

Теперь дочерние элементы сталкиваются вместе, растягивают родительский элемент, но второй дочерний элемент (TextView # date) не выровнен по правому краю.Я не знаю, как это сделать.

Ответы [ 2 ]

0 голосов
/ 23 ноября 2018

Если вам нужно использовать ConstraintLayout, просто настройте несколько ограничений в макете.Чтобы динамически растянуть второго потомка, установите его ширину match_parent, примените правила компоновки для его startOf и endOf и установите гравитацию вправо или в конец, если он растянут из-за минимальной ширины его родителя.

<android.support.constraint.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:background="@drawable/blue_background"
        android:minWidth="160dp">

    <ImageView
            android:id="@+id/status"
            android:layout_width="15dp"
            android:layout_height="15dp"
            android:src="@mipmap/waiting"
            app:layout_constraintStart_toStartOf="parent"/>

    <TextView
            android:id="@+id/date"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="12:00 PM"
            android:textColor="@color/textColorSecondary"
            android:textSize="12sp"
            android:gravity="right|end"
            app:layout_constraintStart_toEndOf="@id/status"
            app:layout_constraintEnd_toEndOf="parent"/>
</android.support.constraint.ConstraintLayout>
0 голосов
/ 23 ноября 2018

Если вы хотите растянуть его до родительской ширины, вы должны использовать match_parent, например, так:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_margin="5dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:minWidth="160dp"
android:background="@android:color/black"
>
<ImageView
    android:id="@+id/status"
    android:layout_width="15dp"
    android:layout_height="15dp"
    android:layout_alignParentLeft="true"
    android:src="@mipmap/ic_launcher" />

<TextView
    app:layout_constraintLeft_toRightOf="@id/status"
    android:id="@+id/date"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="right"
    android:gravity="right"
    android:text="12:00 PM"
    android:textColor="@color/colorPrimary"
    android:textSize="12sp" />
</LinearLayout>

Работа с LinearLayout и использование атрибутов гравитации полезна

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