Как ограничить маржу до конца? - PullRequest
0 голосов
/ 06 декабря 2018

Я хочу добавить arrow icon к end из LinearLayout:

Desired Layout

Каков наилучший способвыполнить это?

Мне удалось обернуть LinearLayout и ImageView с ConstraintLayout, но кажется, что есть более элегантный способ, чем использование app:layout_constraintHorizontal_bias="1".

С первой попытки ImageView был частью LinerLayout (без ConstraintLayout), есть ли способ получить желаемый макет отсюда?

First Attempt

Ток .xml:

<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.LinearLayoutCompat 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">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/profile_constraint_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/_16sdp">

        <androidx.appcompat.widget.LinearLayoutCompat
            android:id="@+id/profile_layout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="start"
            android:orientation="horizontal">

            <androidx.appcompat.widget.AppCompatImageView
                android:id="@+id/imageView"
                android:layout_marginStart="@dimen/_4sdp"
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:background="@drawable/ic_account_circle_black_48dp"
                android:contentDescription="@string/nav_bottom_sheet_profile_description" />

            <androidx.appcompat.widget.LinearLayoutCompat
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:layout_marginStart="@dimen/_4sdp">

                <androidx.appcompat.widget.AppCompatTextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/jesta_profile_full_name_default"/>

                <androidx.appcompat.widget.AppCompatTextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/jesta_profile_phone_number_default"/>
            </androidx.appcompat.widget.LinearLayoutCompat>

        </androidx.appcompat.widget.LinearLayoutCompat>

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:contentDescription="@string/jesta_profile_edit_profile_icon_description"
            android:src="@drawable/ic_keyboard_arrow_right_black_24dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toEndOf="@+id/profile_layout"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintHorizontal_bias="1"/>
    </androidx.constraintlayout.widget.ConstraintLayout>

...
</androidx.appcompat.widget.LinearLayoutCompat>

1 Ответ

0 голосов
/ 06 декабря 2018

Ограничьте ваш значок стрелки только для top, bottom и end, он автоматически прикрепится в самом конце вашего макета

, поэтому вместо этого:

<ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:contentDescription="@string/jesta_profile_edit_profile_icon_description"
            android:src="@drawable/ic_keyboard_arrow_right_black_24dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toEndOf="@+id/profile_layout"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintHorizontal_bias="1"/>

есть это:

    <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"    
                android:contentDescription="@string/jesta_profile_edit_profile_icon_description"
                android:src="@drawable/ic_keyboard_arrow_right_black_24dp"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                />
...