【Android】TextView + ImageView 를 FlexboxLayout에서 LinearLayout과 RelativeLayout의 좋은 사냥을 한다

이런 레이아웃




짧은 문장에서는 그 바로 옆에 대해, 길어지면 오른쪽 끝에 이미지가 붙어 문장은 되돌리고 싶을 때의 방법
  • LinearLayout의 horizontal와 RelativeLayout의 layout_toLeftOf 그리고 layout_alignParentRight를 모두하고 싶습니다.

  • ConstraintLayout에서 할 수 있을까라고 반나절 생각해서 할 수 없었다(가능하면 가르쳐 주었으면 한다) -> 할 수 있었습니다.

  • ConstraintLayout의 경우



    sample.xml
    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <TextView
            android:id="@+id/message"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="@string/long_text"
            app:layout_constraintEnd_toStartOf="@id/icon"
            app:layout_constraintHorizontal_bias="0"
            app:layout_constraintHorizontal_chainStyle="packed"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintWidth_default="wrap" />
    
        <ImageView
            android:id="@+id/icon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@android:drawable/ic_delete"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toEndOf="@id/message"
            app:layout_constraintTop_toTopOf="parent" />
    
    </android.support.constraint.ConstraintLayout>
    

    FlexboxLayout의 경우



    sample.xml
    <?xml version="1.0" encoding="utf-8"?>
    <com.google.android.flexbox.FlexboxLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="@dimen/activity_margin"
            android:gravity="center_vertical"
            android:text="@string/long_text" />
    
        <ImageView
            android:layout_width="60dp"
            android:layout_height="wrap_content"
            android:layout_marginStart="8dp"
            android:contentDescription="@null"
            android:src="@android:drawable/ic_delete" />
    
    </com.google.android.flexbox.FlexboxLayout>
    

    짧은 문자열일 때



    긴 문자열일 때

    좋은 웹페이지 즐겨찾기