Weiß jemand, wie man Text in TextView auf der Android-Plattform umschließt? Wenn der Text in der Textansicht die Bildschirmlänge überschreitet, sollte er in der zweiten Zeile angezeigt werden.
Ich habe Folgendes gesucht und versucht:
android:scrollHorizontally="false",
android:inputType="textMultiLine",
android:singleLine="false"
Aber keine Arbeit ..
Kann mir jemand vorschlagen, wie ich das machen kann.
android:inputType="textPersonName"
. Anscheinend wurde es vom Android Studio-Designtool hinzugefügt. Das Entfernen dieses Attributs hat das Problem behoben! Möglicherweise gibt es auch andere Eingabetypen, die das Umbrechen verhindern.Antworten:
Bei mir trat dieses Problem nur bei Android <4.0 auf
Die Kombination der von mir verwendeten Parameter war:
Die Anzahl der maxLines schien das zufällige letzte Stück zu sein, das meinen TextView-Wrap verursachte.
quelle
match_parent
, was nicht mit dem Erweitern der Höhe der Textansicht um die zusätzlichen Zeilen identisch ist.Einschränkungslayout
android:maxLines="2"
, um eine vertikale Ausdehnung zu verhindern (2 ist nur ein Beispiel)android:ellipsize="end"
Mit der Breite 0dp können Sie durch Links- / Rechtsbeschränkungen bestimmen, wie breit Ihr Widget ist.
Durch Festlegen von Links / Rechts-Einschränkungen wird die tatsächliche Breite Ihres Widgets festgelegt, in die Ihr Text eingeschlossen wird.
Constraint Layout-Dokumente
quelle
Für den Fall, dass sich das
TextView
in a befindetTableLayout
, besteht die Lösung darin,android:shrinkColumns="1"
auf das zu setzenTableLayout
. (Ersetzen1
Sie die Textansicht, in die Sie einbrechen möchten, durch die Spaltennummer. (0-indiziert))AFAICT, auf dem werden keine weiteren Attribute benötigt
TextView
.Für andere Fälle siehe die anderen Antworten hier.
FWIW, ich hatte es anfangs dazu gebracht, mit ihm zu arbeiten
Dies führte jedoch zu einem zusätzlichen leeren Bereich am unteren Rand des Dialogs, in dem sich alles befand.
quelle
Sie müssen 2 Parameter verwenden:
android:ellipsize="none"
: Der Text wird nicht auf die Breite der Textansicht zugeschnittenandroid:scrollHorizontally="false"
Der Text wird so viele Zeilen wie nötig umbrochenquelle
Dies sollte Ihr Problem beheben :
android:layout_weight="1"
.quelle
match_parent
. Nicht ganz das Gleiche wie OP wollte.layout_weight="1"
das Problem für mich behoben. Meine TableRow, die die Textansicht enthält, wurde jedochlayout_height
auf einen bestimmten Wert festgelegt. Vielleicht wird für jemanden nützlich seinOK Leute, die Wahrheit liegt irgendwo in der Mitte, denn man muss das Problem aus der Sicht der Eltern und des Kindes sehen. Die folgende Lösung funktioniert NUR im Spinner-Modus =
dialog
unabhängig von der Android-Version (kein Problem dort .. getestet in VD und DesireS mit Android => 2.2):. Stellen Sie den Spinner-Modus (den übergeordneten Modus) wie folgt ein:
Setzen Sie die Eigenschaften der Textansicht (untergeordnete benutzerdefinierte Ansicht) auf:
Ich hoffe das funktioniert auch bei dir.
quelle
Es hat drei konstante Werte
Weitere Informationen finden Sie in dieser BreakStrategy
quelle
Wenn Sie
android:maxEms
einen bestimmten Wert zusammen mitandroid:layout_weight="1"
festlegen, wird die Textansicht umbrochen, sobald die angegebene Länge der ems erreicht ist.quelle
In Android Studio 2.2.3 gibt es unter der
inputType
Eigenschaft eine Eigenschaft namenstextMultiLine
. Durch Auswahl dieser Option wurde ein ähnliches Problem für mich behoben. Ich hoffe das hilft.quelle
Ich habe gerade an einer Textansicht in einem Layout in einer RecyclerView gearbeitet. Ich hatte Text abgeschnitten, zum Beispiel, denn
Read this message
ich sah :Read this
. Ich habe versucht,android:maxLines="2"
die Textansicht einzustellen, aber nichts hat sich geändert. Allerdingsandroid:lines="2"
führte in derRead this
ersten Zeile undmessage
in der 2 ..quelle
Ich hatte das gleiche Problem. Nach der Änderung hat es funktioniert -
Die Auslassungspunkte, maxLines oder layout_weight - alles machte keinen Unterschied. Hinweis - Die übergeordnete Breite wird auch als wrap_content festgelegt.
quelle
Sie müssen lediglich die Breite Ihrer Textansicht festlegen .
android: layout_width = "60dp"
Sie können die Breite nach Ihren Wünschen ändern. Geben Sie einfach einen langen Satz ein, um zu überprüfen, ob er so funktioniert
android: text = "Ich möchte unter den erstklassigen Software-Ingenieuren sein."
quelle
Versuchen Sie den Ansatz von @ Guykun
android:layout_weight="1" android:ellipsize="none" android:maxLines="100" android:scrollHorizontally="false"
Stellen Sie außerdem sicher, dass die Breite der Eltern nicht so eingestellt ist, dass Inhalte umbrochen werden. Das ist das, was mir gefehlt hat.
quelle
Ich verwende Android 2.2 und meine Textansicht wechselt automatisch in die nächste Zeile, wenn sie den Bildschirm überschreitet.
Wenn Sie möchten, dass der Text in die nächste Zeile vor dem Ende des Bildschirms wechselt, fügen Sie ihn einfach hinzu (geben Sie einfach Ihren eigenen dp-Wert ein). Dies ist nützlich, wenn Sie rechts neben dem Text ein Bild haben.
quelle
Seltsamerweise habe ich meine Textansicht in Code erstellt und sie verpackt - obwohl ich nichts anderes als Standardmaterial festgelegt habe - aber überzeugen Sie sich selbst:
Wie Sie der Parameterdefinition entnehmen können, verwende ich ein LinearLayout. Die Klasse Label erweitert einfach TextView und tut dort nichts anderes, als die Schriftgröße und die Schriftfarbe festzulegen.
Wenn es im Emulator (API Level 9) ausgeführt wird, wird der Text automatisch in drei Zeilen eingeschlossen.
quelle
LinearLayout.LayoutParams childParams = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
. Höchstwahrscheinlich ist das Wrapping, das Sie als "automagisch" betrachtenlayout_with
Stellen Sie einfach eine bestimmte Größe ein. Wenn der Text die maximale Breite ausfüllt, läuft er in die nächste Zeile über und verursacht einen Wrap-Effekt.quelle
Sie müssen Ihre TextView in einer ScrollView mit folgender Berechtigung hinzufügen:
quelle