0

Я использую Android TextView для отображения названия КАТАЛОГ.Android TextView ellipsize

Я добавил определенную ширину для внешнего вида (150dp) для TextView.

Я хочу отобразить «...», когда текст имеет больше длины.

<RelativeLayout 
      android:id="@+id/textview_layout" 
      android:layout_width="150dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center"   
      android:orientation="vertical" > 

      <TextView 
       android:id="@+id/catalog_name" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content"     
       android:layout_centerInParent="true" 
       android:gravity="center_vertical" 
       android:textColor="@color/blue" 
       android:textSize="20dp" 
       android:singleLine="true"     
       android:ellipsize="end" 
       /> 
     </RelativeLayout> 

Название каталога: Мебель и Книги

Мой результат показывает:

Мебель и ...

Но мой результат ожидание

Мебель и. .. (или) Мебель ...

Я хочу показать «...», когда есть Нет места для слова в названии каталога.

+0

вы пробовали 'андроида: maxLength' –

+0

Im используя Android: SingleLine = "истина". Не требуется свойство maxLength. – vinoth

+0

Это не работает на некоторых телефонах Android, но работает в HTC и других устройствах для Android. Это мой опыт. –

ответ

0

Пожалуйста, проверьте, работает ли это

<RelativeLayout 
    android:id="@+id/textview_layout" 
    android:layout_width="150dp" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/catalog_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:gravity="center_vertical" 
     android:singleLine="true" 
     android:text="Furniture and Books" 
     android:textColor="@android:color/holo_blue_dark" 
     android:textScaleX="1.1" 
     android:textSize="20dp" /> 

</RelativeLayout> 
0

Вы можете попробовать это в Java коде, если это действительно необходимо.

String str = "Furniture and Books"; 
str = str.substring(0,8)+"..."; 
text_view.setText(str); 
0

пытаются установить EMS для вашего зрения текста, как:

<TextView 
    android:id="@+id/catalog_name" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"     
    android:layout_centerInParent="true" 
    android:gravity="center_vertical" 
    android:textColor="@color/blue" 
    android:textSize="20sp" 
    android:singleLine="true"     
    android:ellipsize="end" 
    android:maxEms="4" 
    /> 

, кстати, с помощью «зр» в шрифтах является хорошей практикой ... любые способы

где EMS - это размер символов, который должен иметь ваш текст, на практике 4 EMS заставляет текстовое представление вмещать 8 символов (вы можете протестировать его на своих устройствах), и если вы хотите дать ему фиксированную ширину, основанную на количестве charachters, вы можете использовать

android:ems="4" 

вместо

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