Weiß jemand, wie Text in TextView in Android-Plattform umbrochen wird. Wenn der Text in der Textansicht die Bildschirmlänge überschreitet, sollte er in der zweiten Zeile angezeigt werden.
Ich habe folgendes gesucht und ausprobiert:
Android:scrollHorizontally="false",
Android:inputType="textMultiLine",
Android:singleLine="false"
Aber keine Arbeit ..
Kann jemand vorschlagen, wie ich es tun kann ... Ich bin relativ neu auf Android-Plattform ..
Bei mir trat dieses Problem nur bei Android <4.0 auf
Die Kombination der Parameter, die ich verwendete, war:
Android:layout_weight="1"
Android:ellipsize="none"
Android:maxLines="100"
Android:scrollHorizontally="false"
Die Anzahl der maxLines schien das zufällige letzte Stück zu sein, aus dem mein TextView-Wrap entstand.
Für den Fall, dass TextView
sich in einem TableLayout
befindet, besteht die Lösung darin, Android:shrinkColumns="1"
auf TableLayout
zu setzen. (Ersetzen Sie 1
durch die Spaltennummer, in der sich die TextView befindet, in die Sie einschließen möchten. (0-indexiert))
AFAICT, es werden keine anderen Attribute für TextView
benötigt.
Für andere Fälle sehen Sie die anderen Antworten hier.
FWIW, ich hatte es anfangs zur Arbeit bekommen
<TextView
Android:id="@+id/inventory_text"
Android:layout_width="fill_parent"
Android:layout_weight="1"
Android:width="0dp"
dies führte jedoch zu einem zusätzlichen leeren Bereich am unteren Rand des Dialogs, in dem sich alles befand.
<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"/>
Android:maxLines="2"
, um die vertikale Expansion zu verhindern (2 ist nur ein Beispiel)Android:ellipsize="end"
0dp width ermöglicht links/rechts-Beschränkungen, um die Breite Ihres Widgets zu bestimmen.
Wenn Sie links/rechts festlegen, wird die tatsächliche Breite Ihres Widgets festgelegt, innerhalb derer Ihr Text umgebrochen wird.
Sie müssen 2 Parameter verwenden:
Android:ellipsize="none"
: Der Text wird nicht auf die Breite der Textansicht geschnitten
Android:scrollHorizontally="false"
der Text wird in so vielen Zeilen wie nötig umbrochen
Dies sollte Ihr Problem beheben: Android:layout_weight="1"
.
OK Leute, die Wahrheit ist irgendwo in der Mitte, weil man das Problem aus der Sicht der Eltern und der Kinder sehen muss. Die Lösung unten funktioniert NUR, wenn der Spinner-Modus = dialog
ist, 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) wie folgt ein:
Android:spinnerMode="dialog"
Setzt die Eigenschaften der Textansicht (untergeordnete benutzerdefinierte Ansicht) auf:
Android:layout_weight="1"
Android:ellipsize="none"
Android:maxLines="100"
Android:scrollHorizontally="false"
Ich hoffe das funktioniert auch für dich.
In Android Studio 2.2.3 befindet sich unter der Eigenschaft inputType
eine Eigenschaft mit dem Namen textMultiLine
. Die Auswahl dieser Option hat ein ähnliches Problem für mich gelöst. Ich hoffe das hilft.
Wenn Sie Android:maxEms
zusammen mit Android:layout_weight="1"
auf einen bestimmten Wert setzen, wird der TextView-Befehl umgebrochen, sobald er die angegebene Länge der Ems erreicht.
Ich habe gerade an einer TextView innerhalb eines Layouts innerhalb einer RecyclerView gearbeitet. Ich hatte Text abgeschnitten, zB für Read this message
, ich sah: Read this
. Ich habe versucht, Android:maxLines="2"
in der TextView einzustellen, aber es hat sich nichts geändert. Android:lines="2"
ergab jedoch Read this
in der ersten Zeile und message
in der 2. Zeile.
Ich hatte das gleiche Problem. Nach dem Wandel hat es funktioniert -
Android:layout_width="wrap_content"
Die Ellipsis, maxLines oder layout_weight - alles machte keinen Unterschied .. __ Hinweis - Die übergeordnete Breite ist ebenfalls als wrap_content festgelegt.
Verwenden Sie
app:breakStrategy="simple"
inAppCompatTextView
, um das Absatzlayout zu steuern.
Es hat drei konstante Werte
Entwerfen in Ihrer 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 Minimum-API-Niveau 23 oder mehr ist, dann in Coding
yourtextview.setBreakStrategy(Layout.BREAK_STRATEGY_SIMPLE);
Weitere Informationen finden Sie hier BreakStrategy
Sie können die automatische Größenanpassung der Unterstützungsbibliothek für TextView
s verwenden. Überprüfen Sie meine Antwort in einem ähnlichen Thread.
Sie müssen Ihre TextView in einer ScrollView hinzufügen, etwa wie folgt:
<ScrollView Android:id="@+id/SCROLL_VIEW"
Android:layout_height="150px"
Android:layout_width="fill_parent">
<TextView
Android:id="@+id/TEXT_VIEW"
Android:layout_height="wrap_content"
Android:layout_width="wrap_content"
Android:text="This text view should act as header This text view should act as header This text view should act as header This text view should act as header This text view should act as header This text view should act as header This text view should act as header" />
</ScrollView>
Sie müssen lediglich die Breite Ihrer Textansicht festlegen .
Android: layout_width = "60dp"
sie können die Breite nach Belieben ändern. Geben Sie einfach einen langen Satz ein, um zu überprüfen, ob er so funktioniert
Android: text = "Ich möchte unter Softwareingenieuren von Weltrang sein"
Versuchen Sie @ Guykuns Ansatz, und stellen Sie sicher, dass die Breite der Eltern nicht so eingestellt ist, dass Inhalt umbrochen wird. Dies ist das, was mir gefehlt hat.
So einfach geht das:
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Der Text wird standardmäßig umbrochen
Stellen Sie einfach layout_with
auf eine bestimmte Größe ein. Wenn der Text die maximale Breite ausfüllt, wird er in die nächste Zeile überlaufen und einen Umbrucheffekt verursachen.
<TextView
Android:id="@+id/segmentText"
Android:layout_marginTop="10dp"
Android:layout_below="@+id/segmentHeader"
Android:text="You have the option to record in one go or segments(if you swap options
you will loose your current recordings)"
Android:layout_width="300dp"
Android:layout_height="wrap_content"/>
Ich verwende Android 2.2 und meine Textansicht wird automatisch in die nächste Zeile verschoben, wenn der Bildschirm überschritten wird.
Wenn Sie möchten, dass der Text in die nächste Zeile vor dem Ende des Bildschirms wechselt, fügen Sie einfach den Text hinzu (geben Sie einfach Ihren eigenen dp-Wert ein). Dies ist nützlich, wenn Sie rechts vom Text ein Bild haben.
Android:layout_marginRight="52dp"
Seltsam genug - ich habe mein TextView in Code erstellt und es verpackt - obwohl ich nichts außer Standardmaterial eingestellt habe - aber sehen Sie selbst:
LinearLayout.LayoutParams childParams = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT);
childParams.setMargins(5, 5, 5, 5);
Label label = new Label(this);
label.setText("This is a testing label This is a testing label This is a testing label This is a testing labelThis is a testing label This is a testing label");
label.setLayoutParams(childParams);
Wie Sie der Parameterdefinition entnehmen können, verwende ich ein LinearLayout. Die Klasse Label erweitert einfach TextView - es wird nichts weiter gemacht, außer die Schriftgröße und die Schriftfarbe festzulegen.
Bei der Ausführung im Emulator (API Level 9) wird der Text automatisch über 3 Zeilen verteilt.