2012-03-26 3 views
5

В моем приложении у меня есть ellipsize d my TextView, так что если текст слишком велик, в конце он отобразит , используя android:ellipsize="end".TextView android: ellipsize = "end" issue

например. Текст ABCDEFGHIJKLMNOPQRSTUVWXYZ показан как ABCDEFGHIJ.... Но когда текст мал, как и ABCDEF, он по-прежнему показывает ... в конце, делая текст похожим на AB.... Я не могу исправить ширину текстового поля, так как тот же текст используется в другом месте с различными требованиями к ширине. Что делать, чтобы заставить его работать и показывать ..., только если текст достаточно большой.

+0

показать нам, как использовать XML для текстового просмотра. У меня есть ощущение, что вы используете 'android: layout_width =" wrap_content "' – Blundell

+0

Вы можете попробовать с android: ellipsize = "marquee". – YuviDroid

+0

с 'android: layout_width =" wrap_content "' он все равно не должен эллипсизовать текст ... Возможно, у каких-либо родительских контейнеров есть ограничения ширины. – pleerock

ответ

12

// В вашем TextView

добавьте следующие атрибуты также

android:maxEms="8" 
android:singleLine="true" 

ПРИМЕЧАНИЕ: вы можете настроить размер Эмс, чтобы сколько символов вы хотите показать.

+2

Большое спасибо. Это делает трюк. – Rajkiran

+2

Полезный ответ. Однако EMS не преобразует напрямую в число символов. –

1
txtvw.setText("The Indian economy is the world's eleventh-largest by nominal GDP and third-largest by purchasing power parity (PPP). " + 
       "  Following market-based economic reforms in 1991, India became one of the fastest-growing major economies; " + 
       "  it is considered a newly industrialised country. However, it continues to face the challenges of poverty, illiteracy, corruption, malnutrition, and inadequate public healthcare. " + 
       "  A nuclear weapons state and a regional power, it has the third-largest standing army in the world and ranks ninth in military expenditure among nations." + 
       "  India is a federal constitutional republic governed under a parliamentary system consisting of 28 states and 7 union territories. " + 
       "  India is a pluralistic, multilingual, and multiethnic society. " + 
       "  It is also home to a diversity of wildlife in a variety of protected habitats."); 
     ViewTreeObserver vto = txtvw.getViewTreeObserver(); 
     vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 

      @Override 
      public void onGlobalLayout() { 
       ViewTreeObserver obs = txtvw.getViewTreeObserver(); 
       obs.removeGlobalOnLayoutListener(this); 
       if(txtvw.getLineCount() > 1){ 

        int lineEndIndex = txtvw.getLayout().getLineEnd(1); 
        String text = txtvw.getText().subSequence(0, lineEndIndex-3)+"..."; 
        txtvw.setText(text); 

       } 

      } 
     }); 
+0

это уменьшает количество строк до 2. Оно также может быть установлено для 3 строк. и эллипсис также отлично работает. –

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