Android
android開発
FlexboxLayout

【Android】TextView + ImageView を FlexboxLayoutでLinearLayoutとRelativeLayoutのいいとこ取りをする

こういうレイアウト

スクリーンショット 2018-06-08 10.40.17.png
短い文ではその真横について、長くなったら右端に画像がついて文は折り返したい時のやり方

  • LinearLayoutのhorizontalとRelativeLayoutのlayout_toLeftOflayout_alignParentRightを全部やりたい・・・
  • 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" />
    

短い文字列の時

スクリーンショット 2018-06-08 12.37.19.png

長い文字列の時

スクリーンショット 2018-06-08 12.37.55.png