背景:
我有一个由 6 个项目组成的布局,以网格 (2x3) 的形式布置。所有项目的宽度为屏幕的一半(每边减去一点边距)。每个项目都是一个RelativeLayout
,包含一个 ImageView
(背景)和一个TextView
(标签)。标签设置为包裹文本,并且允许它几乎与它所在的图像一样宽。之后它将分成两行。
问题:
只要文本适合单行,一切看起来都很好(参见图片中的顶部元素)。背景很好地包裹了文本。但是,当文本显示在两行时,背景会变得太宽(参见图片中的底部项目)。即使第一行的文本没有占用那么多空间,它也会填满允许的最大宽度。有没有办法让背景以与仅使用一行时相同的方式包装文本?
图片:
布局 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>