So brechen Sie Text in der Textansicht in Android um

Lesezeit: 4 Minuten

Benutzer-Avatar
Gleicher

Weiß jemand, wie man Text in TextView auf der Android-Plattform umbricht. dh wenn der Text in der Textansicht die Bildschirmlänge überschreitet, sollte er in der zweiten Zeile angezeigt werden.

Folgendes habe ich gesucht und probiert:

android:scrollHorizontally="false",
android:inputType="textMultiLine",
android:singleLine="false"

Aber keiner funktioniert..

Kann jemand vorschlagen, wie ich es tun kann.

  • TextViews sollten standardmäßig einen Zeilenumbruch durchführen. Kannst du dein ganzes Layout posten?

    – dah32

    31. Januar 2011 um 16:28 Uhr

  • Befindet sich die Textansicht zufällig in einem Tabellenlayout? Wenn ja, habe ich eine Antwort für Sie.

    – JohnFx

    22. Februar 2011 um 0:55 Uhr

  • In meinem Fall bemerkte ich, nachdem ich etwa ein halbes Dutzend Attribute (unten beschrieben) hinzugefügt hatte, um die Textansicht zu zwingen, Text über mehrere Zeilen zu brechen, ohne Erfolg, ich bemerkte, dass ich ein Attribut hatte android:inputType="textPersonName". Anscheinend wurde es vom Designtool Android Studio hinzugefügt. Das Entfernen dieses Attributs hat das Problem behoben! Es kann auch andere Eingabetypen geben, die das Umbrechen verhindern.

    – LarsH

    4. April 2019 um 10:58 Uhr


Benutzer-Avatar
Bäcker

Beschränkungslayout

<TextView
android:id="@+id/some_textview"
android:layout_width="0dp"
android:layout_height="wrap_content"

app:layout_constraintLeft_toLeftOf="@id/textview_above"
app:layout_constraintRight_toLeftOf="@id/button_to_right"/>
  • Stellen Sie sicher, dass Ihre Layoutbreite Null ist
  • linke / rechte Beschränkungen sind definiert
  • Layouthöhe von wrap_content ermöglicht Erweiterung nach oben/unten.
  • Satz android:maxLines="2" um eine vertikale Ausdehnung zu verhindern (2 ist nur ein Beispiel)
  • Ellipsen sind prob. eine gute idee mit max linien android:ellipsize="end"

0dp width ermöglicht Links/Rechts-Einschränkungen, um zu bestimmen, wie breit Ihr Widget ist.

Durch das Festlegen von Links-/Rechtsbeschränkungen wird die tatsächliche Breite Ihres Widgets festgelegt, innerhalb derer Ihr Text umbrochen wird.

Constraint-Layout-Dokumente

  • Ja! Genau so funktioniert es! Stellen Sie einfach sicher, dass Sie die Breite auf 0dp einstellen

    – Yoraco Gonzales

    6. September 2017 um 21:23 Uhr

  • Das Festlegen der linken und rechten Einschränkungen hat dazu beigetragen, dass es für mich umgebrochen wird, anstatt dass der Text über die rechten Grenzen hinausläuft

    – Jia Tse

    23. Mai 2019 um 16:31 Uhr

  • Dies funktioniert nicht innerhalb eines linearen Layouts, wenn sich an den Seiten ein weiteres Steuerelement befindet, werden diese aus dem Bildschirm geschoben.

    – Emil

    26. März um 16:19 Uhr

Bei mir trat dieses Problem nur bei Android < 4.0 auf

Die Kombination der von mir verwendeten Parameter war:

android:layout_weight="1"
android:ellipsize="none"
android:maxLines="100"
android:scrollHorizontally="false"

Die maxLines-Zählung schien das zufällige letzte Stück zu sein, das meine TextView umbrechen ließ.

  • Ich weiß, es ist jetzt ein alter Thread, aber ich dachte, ich würde meine Ergebnisse posten. Ich habe nur ‘android:maxLines’ verwendet und dann meinen Text umbrochen. Jubel @Guykun

    – StuStirling

    10. Oktober 2012 um 16:02 Uhr

  • Auch dies ist gleichbedeutend mit dem einfachen Einstellen der Höhe der TextView auf match_parentwas nicht dasselbe ist wie das Erweitern der TextView-Höhe um die zusätzlichen Zeilen.

    – SMBiggs

    11. November 2016 um 16:52 Uhr

Für den Fall, wo die TextView ist drinnen a TableLayoutist die Lösung zu setzen android:shrinkColumns="1" auf der TableLayout. (Ersetzen 1 mit der Spaltennummer, in der sich die TextView befindet, die Sie umbrechen möchten. (0-indiziert))

AFAICT, es werden keine weiteren Attribute benötigt TextView.

Für andere Fälle siehe die anderen Antworten hier.

FWIW, ich hatte es anfangs irgendwie zum Laufen gebracht

 <TextView
   android:id="@+id/inventory_text"
   android:layout_width="fill_parent"
   android:layout_weight="1"
   android:width="0dp"

aber das führte zu einem zusätzlichen leeren Platz am unteren Rand des Dialogs, in dem sich alles befand.

  • Das war, wonach ich gesucht habe! Sonst sind meine Worte abgeschnitten

    – Carson Holzheimer

    31. August 2017 um 8:36 Uhr

  • stretchColumns auf dem Tisch funktioniert auch für mich und bringt mir tatsächlich bessere Ergebnisse

    – Jaspis de Vries

    27. Januar 2021 um 14:42 Uhr

Benutzer-Avatar
Nirav Bhavsar

Verwenden app:breakStrategy="simple" in AppCompatTextViewsteuert es das Absatzlayout.

Es hat drei konstante Werte

  • ausgewogen
  • hohe Qualität
  • einfach

Entwerfen in Ihrem TextView-XML

<android.support.v7.widget.AppCompatTextView
        android:id="@+id/textquestion"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:scrollHorizontally="false"
        android:text="Your Question Display Hear....Your Question Display Hear....Your Question Display Hear....Your Question Display Hear...."
        android:textColor="@android:color/black"
        android:textSize="20sp"
        android:textStyle="bold"
        app:breakStrategy="simple" />

Wenn Ihr aktuelles Mindest-API-Level 23 oder mehr beträgt, dann in Codierung

yourtextview.setBreakStrategy(Layout.BREAK_STRATEGY_SIMPLE);

Weitere Informationen finden Sie hier BreakStrategy

Textansicht BreakStrategy-Bild

Benutzer-Avatar
Kartaguez

Sie müssen 2 Parameter verwenden:

  • android:ellipsize="none" : Der Text wird nicht auf Textansichtsbreite geschnitten

  • android:scrollHorizontally="false" der Text wird in so vielen Zeilen wie nötig umbrochen

  • Das funktioniert bei mir nicht. (FWIW, ich habe eine TextView in einer TableRow in einem TableLayout.)

    – aij

    8. Juni 2014 um 1:19 Uhr

Das sollte dein Problem beheben: android:layout_weight="1".

  • Das funktioniert bei mir nicht. (FWIW, ich habe eine TextView in einer TableRow in einem TableLayout.)

    – aij

    8. Juni 2014 um 1:19 Uhr

Benutzer-Avatar
Freddroid

Indem man es einstellt android:maxEms auf einen bestimmten Wert zusammen mit android:layout_weight="1" bewirkt, dass die TextView umgebrochen wird, sobald sie die angegebene Länge des ems erreicht.

  • Funktioniert auch für TextView, das in RelativeLayout platziert ist.

    – ayz4sci

    23. März 2018 um 17:56 Uhr

  • Ich habe stundenlang gesucht, danke, es funktioniert auch hervorragend mit ConstraintLayout

    – TarekB

    5. Mai 2020 um 8:18 Uhr

1317710cookie-checkSo brechen Sie Text in der Textansicht in Android um

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy