2016-04-26 16 views
1

Ich versuche, ein TextView auf 1 Zeile, die Länge des Bildschirms zu begrenzen. Ich habe Probleme, die Expansion zu verhindern.Wie Linien auf einem TextView zu begrenzen

Ich habe versucht, die xml

android:minLines="1" android:maxLines="1"

Attribute der Textview hinzufügen. Dadurch wird die Ansicht nicht expandiert, aber dies beschränkt nicht die Zeichen des Texts. Zum Beispiel, wenn ich die maximale Anzahl von Zeichen in einer Zeile eingegeben habe und fortfahren, ein '(' zu der Zeichenfolge hinzuzufügen, kann ich die Oberseite davon unter der ersten Zeile gedruckt.

Grundsätzlich brauche ich einen Weg . die Menge von Zeichen auf die Breite des Bildschirms zu begrenzen ich habe dies versucht.

while(txt.getLineCount() > 1) { 
    txt.setText(txt.getText().subSequence(0,txt.getText().length()-1)); 
} 

, die überhaupt nicht arbeiten, ich habe auch versucht, das gleiche Verfahren mit den txt.getHeight() zum txt.getTextSize() zu vergleichen.

Ich habe keine Ideen.Was kann ich tun?

+0

Da dies eine Textansicht ist, setzen Sie den Text darauf. Recht ? Steuern Sie das programmatisch während des settext(). –

+0

Ich denke, du verpasst meinen Punkt. Ich verwende setText(). Ich möchte eine Methode, um die Anzahl der Zeichen auf nur die Länge des Bildschirms zu begrenzen. Wie Sie wissen, hat jedes Zeichen eine andere Breite, basierend auf der Schriftgröße. Ich brauche eine Methode, um mir genau zu sagen, wenn der angezeigte Text länger als die Breite der Ansicht wird. An dieser Stelle kann ich einfach text.setText (text.getText() .subSequence (0, text.getText(). Length-1)) sagen, um das Zeichen zu löschen, das die View-Breite überschreiten und/oder eine neue Zeile erstellen würde – user6191359

+0

Sie möchten also nur eine Zeile in Textview einfügen, und dies wird sich je nach Bildschirm ändern, da sie sich in den Auflösungen unterscheiden. Recht ? –

Antwort

0

Wenn ich eine Textview auf diese Weise verwenden, wird es nur 1 Zeile MESSE:

<TextView 
    android:id="@+id/textView" 
    android:maxLines="1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"/> 
+0

Ja, aber wenn Sie den Text so einstellen, dass er mehr Zeichen enthält als in die Zeile passen kann, besonders große Zeichen wie '(', ')', '!' Sie können es sehen, die Spitzen dieser Charaktere gerade innerhalb des unteren Randes zu drucken. Außerdem möchte ich für die Zwecke meiner App die CharSequence des TextView begrenzen, so dass es nicht länger als das sein kann, was sichtbar ist – user6191359

0

bereits. Dies beschränkt Textansicht auf einzelne Zeile. Wenn der Text mehr als eine Zeile enthält, wird am Ende ... angezeigt.

<TextView 
    android:id="@+id/textView" 
    android:singleline="true" 
    android:ellipsize="end" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"/> 
Verwandte Themen