在LinearLayout中裁剪textView

时间:2014-09-29 07:31:28

标签: android android-linearlayout textview android-textattributes

我有LinearLayout,里面有两个TextView - textNametextPricetextName的属性:

android:layout_width="wrap_content"
android:layout_height="wrap_content"

textPrice的属性:

android:layout_width="fill_parent"
android:layout_height="wrap_content"

如果textName很长,它会延伸整条线并关闭textPrice

这是我的xml-markup:

<LinearLayout
        android:id="@+id/textNameTimeHolder"
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/thumbnail"
        android:layout_toRightOf="@+id/thumbnail" android:layout_alignBottom="@+id/thumbnail">
    <TextView
            android:id="@+id/textName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Неудержимые 3"
            android:textColor="#040404"
            android:typeface="sans"
            android:textSize="15sp"
            android:textStyle="bold"
            android:singleLine="true"
            android:layout_toLeftOf="@+id/textPrice"/>
    <TextView
            android:id="@+id/textPrice"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="right"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="15sp"
            android:text="150 - 220 сом"
            android:layout_marginRight="5dp"
            android:layout_gravity="right"/>
</LinearLayout>

如果textName(使用singleline),如果时间过长会如何裁剪?

感谢。

4 个答案:

答案 0 :(得分:1)

设置

  android:ellipsize="end"

代表TextView

答案 1 :(得分:1)

ellipsize中设置TextView属性,最好在weight中使用TextView

<LinearLayout
        android:id="@+id/textNameTimeHolder"
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/thumbnail"
        android:layout_toRightOf="@+id/thumbnail"
        android:layout_alignBottom="@+id/thumbnail">
    <TextView
            android:id="@+id/textName"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ellipsize="end"
            android:text="Неудержимые 3"
            android:textColor="#040404"
            android:typeface="sans"
            android:textSize="15sp"
            android:textStyle="bold"
            android:singleLine="true"/>
    <TextView
            android:id="@+id/textPrice"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ellipsize="end"
            android:gravity="right"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="15sp"
            android:text="150 - 220 сом"
            android:layout_marginRight="5dp"
            android:layout_gravity="right"/>
</LinearLayout>

答案 2 :(得分:0)

您可以使用android:maxEMS(EMS是占用角色的最大空间,技术上占用E或M的空间)并选择特定长度。如果文字太长,它将自动附加三个点(...)。

答案 3 :(得分:0)

您应在文字视图上设置android:ellipsize