2014-02-14 4 views
0

Я хочу отображать многоточие, если длина моего текста слишком длинная. Но по какой-то причине он, похоже, не работает. Пожалуйста, обратите внимание на изображение, как это выглядит:ellipsize on textview не работает

enter image description here

Вот мой код макета.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 
<TextView 
      android:id="@+id/txt1_trans" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textIsSelectable="true" 
      android:bufferType="spannable" 
      android:layout_marginLeft="10dp" 
      android:singleLine="true" 
      android:ellipsize="end" 
      android:freezesText="true" 
      android:focusable="true" 
      android:focusableInTouchMode="true" 
      android:text="My Personal > Bank of America savings" 
      android:textStyle="bold" 
      android:textSize="18sp" 
      android:layout_marginTop="5dp" 
      android:textColor="#000000"/> 

<TextView 
    android:layout_width="wrap_content" 
    android:id="@+id/TextView2" 
    android:layout_height="wrap_content" 
    android:textSize="18sp" 
    android:text="100$" 
    android:textStyle="bold" 
    android:layout_marginRight="20dp" 
    android:layout_alignParentRight="true" 
    android:layout_alignTop="@id/txt1_trans" 
    android:layout_alignBottom="@id/txt1_trans"/> 

</RelativeLayout> 

Я хочу TextView слева (txt1_trans), чтобы отобразить многоточие, если он занимает пространство, которое TextView справа («TextView2») занимает. Пожалуйста, дайте мне знать, что я делаю неправильно.

Благодаря

ответ

0

Я нашел проблему с макетом. Для 2-го TextView на моем макете, я поставил

alignParentRight = истинный

И первый TextView имеет

ширина = "wrap_content"

Из-за это, оба эти TextViews в конечном итоге занимают общее пространство. Чтобы этого избежать, я установил первый TextView to_LeftOf 2nd TextView. Это гарантирует, что они не пытаются писать на одном общем пространстве. Вот моя правильная планировка:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
<TextView 
     android:id="@+id/txt1_trans" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textIsSelectable="true" 
     android:bufferType="spannable" 
     android:layout_marginLeft="10dp" 
     android:singleLine="true" 
     android:ellipsize="end" 
     android:layout_toLeftOf="@+id/TextView2" 
     android:freezesText="true" 
     android:focusable="true" 
     android:focusableInTouchMode="true" 
     android:text="My Personal Bank of America savings" 
     android:textStyle="bold" 
     android:textSize="18sp" 
     android:layout_marginTop="5dp" 
     android:textColor="#000000"/> 

    <TextView 
     android:layout_width="wrap_content" 
     android:id="@+id/TextView2" 
     android:layout_height="wrap_content" 
     android:textSize="18sp" 
     android:text="100$" 
     android:textStyle="bold" 
     android:layout_marginRight="20dp" 
     android:layout_alignParentRight="true" 
     android:layout_alignTop="@id/txt1_trans" 
     android:layout_alignBottom="@id/txt1_trans"/> 
</RelativeLayout> 
0

Вы не можете использовать ellipsize с wrap_content в качестве ширины. Вы должны использовать либо wrap_parent, либо предпочтительно match_parent в зависимости от версии Android, на которую вы нацеливаете.

+0

такой атрибут, как 'wrap_parent' - вы имеете в виду' 'match_parent' или не fill_parent' – ataulm

+0

да мои извинения fill_parent – Ben

Смежные вопросы