在LinearLayout中裁剪textView

问题描述:

我有两个TextView在其中的LinearLayout - textNametextPrice。所述textName的性质:在LinearLayout中裁剪textView

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

textPrice的属性:

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

在这种情况下,当textName长,它延伸在整个线和关闭textPrice

这里是我的XML的标记:

<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),当它的时间太长?

谢谢。

设置ellipsize属性在TextView和更好的在这两个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> 

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

android:ellipsize="end" 

TextView

使用weight你应该在你的TextView设置android:ellipsize