Frage

Wenn ein String länger ist als die Breite des TextView es wickelt automatisch auf die nächste Zeile. Ich kann dies vermeiden, indem android:singleLine mit (veraltet) oder durch android:inputType="text" Einstellung. Was ich jetzt brauchen, ist etwas, das die letzten drei Zeichen meiner String ersetzt mit „ ... “. Da ich eine nichtproportionale Schrift nicht verwendet, wird dies immer unterschiedlich sein, abhängig von den Buchstaben in meinem String verwendet. So frage ich mich, was ist der beste Weg, um die letzten 3 Zeichen eines String in einem TextView zu erhalten und sie zu ersetzen. Vielleicht gibt es schon im Android Framework implementiert etwas, da dies ein weit verbreitetes Problem sein muss.

War es hilfreich?

Lösung

Es sollte möglich sein, die „ellipsize“ Eigenschaft einer Textansicht zu verwenden:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/text_mytext"
    android:ellipsize="end"
    android:maxLines="1"
/>

Sie müssen unter Umständen auch zu Schwerewerte, um das Layout gelten; Ich habe manchmal „Auto-Strecken“ Ansichten ohne sie gesehen.

Andere Tipps

Haben Sie eine interessante Arbeit-a-Runde für dieses Problem.

maxLines=1
ellipsize=end
scrollHorizontally=true

Der Trick ist, dass letzte Aussage über die horizontale Scrollen .... check it out. Es zumindest funktioniert auf v2.2.

Programmatisch können Sie:

TextView tx = new TextView(this);
tx.setTextSize(13);
tx.setGravity(Gravity.CENTER);
tx.setTop(90);
tx.setText("Long text here");
tx.setTextColor(Color.BLACK);
tx.setSingleLine(true);
tx.setEllipsize(TruncateAt.END);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top