2012-03-26 16 views
5

In meiner Anwendung habe ich ellipsize d meine TextView, so dass, wenn der Text zu groß ist, es ... am Ende mit android:ellipsize="end" zeigt.TextView android: ellipsize = "end" issue

z.B.Text ABCDEFGHIJKLMNOPQRSTUVWXYZ wird als ABCDEFGHIJ... gezeigt. Aber wenn der Text klein ist, wie ABCDEF zeigt es immer ... am Ende, so dass der Text wie AB... aussieht. Ich kann die Breite der Textansicht nicht festlegen, da dieselbe Textansicht an anderer Stelle mit unterschiedlichen Breitenanforderungen verwendet wird. Was soll ich tun, damit es funktioniert und ... nur angezeigt wird, wenn der Text groß genug ist.

+0

zeigen Sie uns die XML Ihre Verwendung für die Textansicht. Ich habe das Gefühl, dass Sie mit 'android: layout_width =" wrap_content "' – Blundell

+0

Sie könnten versuchen, mit Android: ellipsize = "Marquee". – YuviDroid

+0

mit 'android: layout_width =" wrap_content "' es sollte immer noch Text nicht ellipsen ... Vielleicht hat jeder Eltern-Container eine Breite Einschränkungen .. – pleerock

Antwort

12

// In Ihrem Textview

fügen Sie den unten auch

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

HINWEIS Attribute: Sie die ems Größe, wie viele Zeichen anpassen können Sie anzeigen möchten.

+2

Vielen Dank. Das macht den Trick. – Rajkiran

+2

Nützliche Antwort. EMS konvertiert jedoch nicht direkt in die Anzahl der Zeichen. –

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

dies reduziert meine Anzahl von Zeilen auf 2. Es kann auch für 3 Zeilen eingestellt werden. Und es funktioniert auch gut. –

Verwandte Themen