2016-07-06 18 views
0

Ich möchte HTML-Inhalt in einem Textview auch zeigen, wenn es mehr als 5 Zeilen dann die zusätzlichen Zeilen trimmen und "..." am Ende hinzufügen. Früher habe ich diesen Code einen Trimm die zusätzliche Linien hinzuzufügen,Android Textansicht Ellipse entfernt den HTML-Inhalt

textview.setText(Html.fromHtml(message)); 

this.setAutoLinkMask(Linkify.ALL); 
this.setMaxLines(5); 
this.setEllipsize(TextUtils.TruncateAt.END); 
this.setHorizontalScrollBarEnabled(true); 

aber es funktionierte nur für einige Texte,

 ViewTreeObserver vto = feedListRowHolder.description.getViewTreeObserver(); 
     vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { 

      @Override 
      public void onGlobalLayout() { 
       ViewTreeObserver obs = feedListRowHolder.description.getViewTreeObserver(); 
       if (Build.VERSION.SDK_INT < 16) obs.removeGlobalOnLayoutListener(this); 
       else obs.removeOnGlobalLayoutListener(this); 

       if (feedListRowHolder.description.getLineCount() > 5) { 
        int lineEndIndex = feedListRowHolder.description.getLayout().getLineEnd(4); 
        String text = textview.subSequence(0, lineEndIndex - 3) + "..."; 
        textview.setText(Html.fromHtml(text)); 
       } 
      } 
     }); 

das Problem ist, es HTML-Format aus dem Text entfernt.

Antwort

0

Ändern Sie diese String text = textview.subSequence(0, lineEndIndex - 3) + "...";

-String text = message.subSequence(0, lineEndIndex - 3) + "...";