2016-07-10 12 views
0

Die Wirkung ich erreichen möchte, ist wie folgt: enter image description hereWie kann ich setEllipsize (TextUtils.TruncateAt.END) auf EditText in Android anwenden?

Ich gehe davon aus, dass, wenn die Schaltfläche geklickt wird und wenn die Textlänge länger als die EditText's Breite ist, die „...“ am Ende angehängt werden .

Ich versuchte es auf 2 Arten.

One ist wie folgt:

if (str != null && edt.getWidth() <= edt.getTextSize() * str.length()) { 
     String dotsString = str.substring(0, (int)(edt.getWidth()/ 
          edt.getTextSize()) - 1) + "..."; 
     edt.setText(dotsString); 
    } 

Es sieht gut aus, aber wenn der Text von verschiedenen Sprachen, Chinesisch und Englisch Zeichen gemischt wird, zum Beispiel, wird das Ergebnis nicht meine Erwartung neet.

Und die andere Art und Weise habe ich versucht, wie das ist:

TextView edtTv = (TextView) findViewById(R.id.edit); 
edtTv.setSingleLine(true); 
edtTv.setEllipsize(TextUtils.TruncateAt.END); 
edtTv.setText(edtTv.getText().toString()); 

Aber es funktioniert nicht.

Ich bin so verwirrt! Jede Hilfe wird zu schätzen wissen.

+0

Fragen Sie nach EditText oder TextView? – grebulon

Antwort

0

Das Problem, dass die Ellipse von EditText nicht funktioniert, wird durch horizontales Scrollen verursacht. Siehe this answer

+0

Die Antwort, die Sie beziehen sich auf TextView – grebulon

+0

EditText erweitert TextView, so dass es sich auf beides bezieht – AnoDest

Verwandte Themen