Wenn ein String
länger als die TextView
's Breite ist, wird automatisch auf die nächste Zeile umgebrochen. Ich kann das vermeiden, indem ich android:singleLine
(veraltet) oder android:inputType="text"
setze. Was ich jetzt brauche, ist etwas, das die letzten 3 Zeichen meines String
durch "..." ersetzt. Da ich keine Monospace-Schriftart verwende, wird dies immer anders sein, abhängig von den Buchstaben in meinem String
. Also frage ich mich, wie Sie die letzten 3 Zeichen eines Strings am besten in einem TextView
erhalten und ersetzen können. Vielleicht ist bereits etwas im Android-Framework implementiert, da dies ein häufiges Problem sein muss.Android: TextView wird automatisch abgeschnitten und ersetzt die letzten 3 Zeichen von String
Antwort
Sie sollten die „ellipsize“ Eigenschaft eines Textansicht verwenden können:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/text_mytext"
android:ellipsize="end"
android:maxLines="1"
/>
Sie auch zu Schwerewerte auf das Layout anwenden müssen; Ich habe manchmal "Auto-Stretching" Ansichten ohne sie gesehen.
Einen interessanten Work-A-Round für dieses Problem gefunden.
maxLines=1
ellipsize=end
scrollHorizontally=true
Der Trick ist diese letzte Aussage über horizontales Scrollen .... überprüfen Sie es. Es funktioniert zumindest auf v2.2.
Scheint zu arbeiten auf Android 4.0 aufhören – caw
Interessant ... gut zu wissen. Danke Marco für das Heads-up. – BonanzaDriver
mit programmatisch
können Sie verwenden
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);
+1 - genau, was Benutzer zu rollen tun will er sich ohne – I82Much
Perfect. Vielen Dank. Ich habe das vorher versucht, aber nicht funktioniert, weil ich android verwendet: inputType = "text" anstelle von android: singleLine = "true" (was veraltet sein soll). Aber jetzt bleibe ich bei android: singleLine = "true". Vielen Dank. – znq
Es fügt immer noch nicht das "..." hinzu. Für mich ist diese Frage nicht vollständig beantwortet! Diese Antwort wird "shortlongword" zu "short" und nicht zu "short verylon ..." machen. Außerdem schlagen Sie vor, ein veraltetes Attribut zu verwenden. – OneWorld