Ich habe eine Aktivität, bei der ich eine Überschrift anzeigen möchte, die das obere Viertel der App aufruft und einen dynamischen Textsatz anzeigt. In einigen Fällen passt alles auf eine Zeile und ich möchte, dass die Schriftgröße vergrößert wird, damit sie groß und leicht lesbar ist. In einigen Fällen ist es auf mehreren Zeilen (normalerweise weniger als 4) und muss kleiner sein.Größenanpassung eines mehrzeiligen Android-TextViews
Die Komplikation ist, dass, wenn ich ausdrücklich die Zeilenumbrüche in setText manchmal erhält es eine neue Zeile einzufügen, wo ich nicht erwarten war, das heißt:
"My first line of text\nMy Second line of text" Might get turned into (it's right adjusted in this version): "My first line of text My second line of text"
Ich bin mir nicht sicher, wie entweder Haltung gehen die TextView von versuchen, Zeilenumbrüche einzufügen oder es einfach machen, um die ganze Sache zu formatieren. Wenn ich einen Text als ein wirklich langes einzelnes Wort definiere, fügt er an einer bestimmten Stelle einen neuen Zeilensprung in die Mitte ein. Und manchmal bekomme ich zufällig die letzten Zeilen Text.
Soll ich nur explizit die Schriftgröße auf klein setzen, damit sie korrekt angelegt wird, und dann die Größe manuell anpassen? Gibt es eine "Best Practice", die ich dafür verwenden sollte? Wenn ich die Schriftgröße auf eine relativ große Schriftgröße einstelle, funktioniert das irgendwie, aber es wäre schön, herauszufinden, was der "richtige" Weg wäre, dies zu tun. Und ich würde lieber nicht in 4 einzeiligen TextViews manuell hinzufügen und sie selbst formatieren.
Das Layout xml Ich verwende ist:
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_marginTop="10dip"
android:layout_marginRight="8dip"
android:singleLine="false"
android:ellipsize="marque"
android:gravity="right|bottom"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="30sp"
/>
Umm, es ist nicht ganz klar, was Sie tun möchten. Sie möchten die Größe des Textes ändern, um ein Textfeld zu füllen? Warum fügst du überhaupt neue Zeilen hinzu? Legen Sie einfach die Größe fest, fügen Sie den Text ein und lassen Sie ihn umbrechen. – Falmarri
Wie groß ist die Größe, damit sie tatsächlich in die gesamte Textbox passt? Wenn Sie eine zu große Größe wählen, beschließt TextView, neue Zeilen in Ihren Text zu schreiben/einzufügen (und ich bin mir nicht sicher, wie das entschieden wird). Wenn Sie eine kleine Größe wählen und keine neuen Zeilen in sich selbst einfügen, ist es schwierig, sie zu skalieren, ohne grundsätzlich jede Schriftgröße durchlaufen zu müssen und sie jedes Mal neu zu formatieren (Einfügen neuer Zeilen). Es wäre schön, wenn Sie einfach verhindern würden, dass TextView mit den Dingen herumhantiert und selbst neue Zeilen einfügt. – William