TextView的背景与多条线没有正确包装

时间:2012-12-18 09:12:21

标签: android android-layout textview

背景

我有一个由6个项目组成的布局作为网格(2x3)。所有项目都宽到屏幕的一半(减去每侧的一点边距)。每个项目都是RelativeLayout,其中包含ImageView(背景)和TextView(标签)。标签被设置为包裹文本,并且允许其生长几乎与它所在的图像一样宽。之后它会分成两行。

问题:

只要文本适合单行,一切看起来都很好(参见图片中的顶部元素)。背景很好地包装了文本。但是,当文本显示在两行上时,背景太宽(参见图中的底部项目)。即使第一行上的文本没有占用太多空间,它也会填充允许的最大宽度。有没有办法使背景包装文本的方式与使用只有一行时的方式相同?

图片:

screen_capture

布局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>

1 个答案:

答案 0 :(得分:0)

出现此类问题的可能性之一是textSize

这取决于您的设置方式以及用于设置textSize的{​​{1}}的测量单位。

TextView可能会导致产生此类问题。

因此,请尝试专门使用dp,sp,pt and inmm

根据我的测试px会给你最好的结果。

已编辑:

将以下属性添加到布局文件中的px

TextView

而不是:

android:gravity="right|start"

感谢。