バックグラウンド:
グリッド (2x3) として配置された 6 つのアイテムで構成されるレイアウトがあります。すべての項目は、画面の半分の幅 (左右のわずかな余白を差し引いたもの) です。各アイテムは(背景) と(ラベル)RelativeLayout
を含む です。ラベルはテキストをラップするように設定されており、その上にある画像とほぼ同じ幅に拡大できます。その後、2行に分かれます。ImageView
TextView
問題:
テキストが 1 行に収まる限り、すべてが適切に表示されます (図の一番上の要素を参照)。背景はテキストをうまく包み込みます。ただし、テキストが 2 行で表示されると、背景が広くなりすぎます (図の一番下の項目を参照)。最初の行のテキストはそれほど多くのスペースを占有しませんが、最大許容幅を埋めます。1 行だけを使用する場合と同じように、背景でテキストを折り返す方法はありますか?
写真:
レイアウト XML:
<ImageView
android:id="@+id/item_image"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="centerCrop" />
<!-- some stuff I had to remove... -->
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:paddingBottom="11.33333dp">
<!-- some other stuff I had to remove... -->
<!-- the gray background color is set to the TextView below programmatically together with the text itself. -->
<TextView
android:id="@+id/item_text_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5.33333dp"
android:paddingLeft="7.33333dp"
android:paddingRight="20dp"
android:paddingTop="1dp"
android:paddingBottom="5.33333dp"
android:layout_alignParentRight="true"
android:gravity="right" />
</RelativeLayout>
</RelativeLayout>