Ich versuche, einen Zeilenumbruch in die Textansicht einzufügen.
Ich habe versucht, vorgeschlagen \ n, aber das macht nichts. So stelle ich meine Texte ein.
TextView txtSubTitle = (TextView)findViewById(r.id.txtSubTitle);
txtSubTitle.setText(Html.fromHtml(getResources().getString(R.string.sample_string)));
Das ist mein String: <string name="sample_string">some test line 1 \n some test line 2</string>
Es sollte so aussehen:
some test line 1
some test line 2
Aber es zeigt sich so : some test line 1 some test line 2
.
Vermisse ich etwas
android
textview
line
line-breaks
Tropfen von Jupiter
quelle
quelle
\n
ist in der Tat der beste Weg. github.com/paour/StringResourceTestHtml.fromHtml()
einfach diese Funktion und verwenden Sie sie einfachtxtSubTitle.setText(getResources().getString(R.string.sample_string))
.Antworten:
\n
funktioniert für mich so:quelle
\n
alleine wird funktionieren ... Glaube nicht, dass das\r
irgendetwas tut.ok habe es herausgefunden:
Daher ist ein Wrap in CDATA erforderlich, und Unterbrechungen werden als HTML-Tags hinzugefügt
quelle
Html.fromHtml()
, was für einen einfachen Zeilenumbruch etwas viel ist und von Übersetzungsanbietern nicht gut unterstützt wird.Android Version 1.6 erkennt \ r \ n nicht. Verwenden Sie stattdessen: System.getProperty ("line.separator")
quelle
Zeilenumbrüche (\ n) funktionieren nur , wenn Sie Ihren Zeichenfolgenressourcenwert in Anführungszeichen wie folgt setzen:
Es wird keine Zeilenumbrüche verursachen, wenn Sie es ohne solche Anführungszeichen setzen:
Ja, so einfach ist das.
quelle
<string name="sample_string">"some test line 1 some test line 2 line 3" </string>
Ich habe alles oben Genannte versucht und selbst recherchiert, was zu der folgenden Lösung für das Rendern von Zeilenvorschub-Fluchtzeichen führte:
Mit der Methode replace Sie müssen Filter entkam Zeilenvorschübe (zB ‚\\ n‘)
Erst dann wird jede Instanz der Zeilenvorschub-Escapezeichen '\ n' in den eigentlichen Zeilenvorschub gerendert
In diesem Beispiel habe ich eine Google Apps Scripting noSQL-Datenbank (ScriptDb) mit JSON-formatierten Daten verwendet.
Prost: D.
quelle
Das hat bei mir funktioniert
quelle
Es gibt zwei Möglichkeiten, dies zu umgehen. Wenn Sie Ihre Zeichenfolge als Rohzeichenfolge verwenden, müssen Sie das Zeilenumbruchzeichen verwenden. Wenn Sie es als HTML verwenden, z. B. indem Sie es mit analysieren
Html.fromString
, ist die zweite Variante besser.1) Zeilenumbruch
\n
2) HTML Newline Tag
<br>
oder<br />
quelle
<br>
,<u>
,<b>
Und<i>
Tags werden in String - Ressourcen ohne Flucht erlaubt, und durch korrekt angewendet werdenTextView.setText(resId)
. Sie werden bei Verwendung abgestreift, sofern sieContext.getString(resId)
nicht in einenCDATA
Abschnitt eingewickelt sind .Das hat bei mir funktioniert, vielleicht findet jemand dies hilfreich heraus:
quelle
Wenn Sie XML zum Deklarieren Ihrer TextView-Verwendung
android:singleLine = "false"
oder in Java verwenden, verwenden SietxtSubTitle.setSingleLine(false);
quelle
Verwendet Android Studio 0.8.9. Der einzige Weg, der für mich funktioniert hat, ist die Verwendung
\n
. Weder mit CDATA verpacken noch<br>
oder<br />
funktioniert.quelle
Ich benutze folgendes:
quelle
sehr einfach: benutze "\ n"
\ n entspricht dem ASCII-Zeichen 0xA, das 'LF' oder Zeilenvorschub ist
\ r entspricht dem ASCII-Zeichen 0xD, das 'CR' oder Wagenrücklauf ist
Dies stammt aus den ersten Schreibmaschinen, bei denen Sie nur einen Zeilenvorschub (und nur eine Zeile tiefer) oder einen Zeilenvorschub + Wagenrücklauf (der auch an den Zeilenanfang verschoben wird) auswählen können.
Unter Android / Java entspricht \ n einem Wagenrücklauf + Zeilenvorschub, da Sie sonst nur dieselbe Zeile "überschreiben" würden
quelle
Versuchen Sie, Ihre Lokalisierungen zu überprüfen. Möglicherweise versuchen Sie, eine Datei zu bearbeiten (Lokalisierung), programmieren aber tatsächlich mit einer anderen, genau wie in meinem Fall . Die Standardsystemsprache ist Russisch, während ich versuche, die englische Lokalisierung zu bearbeiten.
In meinem Fall besteht die Arbeitslösung darin, "\ n" als Zeilentrennzeichen zu verwenden:
quelle
Sie können auch
"<br/>"
anstelle von \ n hinzufügen .Es ist HTML-Code für <br/>
Und dann können Sie TexView Text hinzufügen:
quelle
Html.fromHtml(textForTextView).toString()
--- Und dann können Sie tun:articleTextView.setText(Html.fromHtml("text before break<br/>text after break").toString());
-------- Mit anderen Worten, verwenden Sie einfach<br/>
direkt im InnerenfromHtml()
<br/>
sollte ausreichen, um sicherzustellen, dass die Stilinformationen nicht entfernt werden. (basierend auf der offiziellen Dokumentation)Sie können auch den String-Editor von Android Studio verwenden, der automatisch Linienbremsen und ähnliches erzeugt ...
quelle
Als
Html.fromHtml
veraltet habe ich einfach diesen Code verwendet, um String2 in der nächsten Zeile zu erhalten..
quelle
Der einfachste Weg, dies zu tun, besteht darin, zu Werten / Zeichenfolgen (in Ihrem Ressourcenordner) zu wechseln.
Deklarieren Sie dort eine Zeichenfolge:
Und in Ihrer spezifischen XML-Datei rufen Sie einfach die Zeichenfolge wie auf
quelle
Ich habe eine andere Methode gefunden: Ist notwendig, um das Attribut " android: maxWidth =" 40dp " " hinzuzufügen . Natürlich funktioniert es möglicherweise nicht perfekt, aber es gibt einen Zeilenumbruch.
quelle
\ n hat nicht für mich gearbeitet. Ich konnte das Problem beheben, indem ich die XML-Datei in Text änderte und die Textansicht textview wie unten erstellte.
Hoffentlich hilft dies denen, die gesagt haben, dass \ n für sie nicht funktioniert hat.
quelle
\n
Zeichen darin.Ich lese meinen Text aus einer Datei, daher habe ich einen etwas anderen Ansatz gewählt, da das Hinzufügen von \ n zur Datei dazu führte, dass \ n im Text angezeigt wurde.
quelle
Vielleicht können Sie das lf in den Text einfügen , aber es wird nicht angezeigt? Stellen Sie sicher, dass Sie genügend Höhe für die Steuerung haben. Beispielsweise:
Richtig:
Kann falsch sein:
quelle
In meinem Fall habe ich dieses Problem gelöst, indem ich Folgendes hinzugefügt habe:
quelle
Versuche dies:
quelle
Verwenden Sie einen Textumbruch wie folgt (\ n):
quelle
Ich bin der Meinung, dass eine vollständigere Antwort erforderlich ist, um zu beschreiben, wie dies gründlicher funktioniert.
Wenn Sie eine erweiterte Formatierung benötigen, lesen Sie zunächst das Handbuch zur Verwendung von HTML in Zeichenfolgenressourcen .
Dann können Sie
<br/>
usw. verwenden. Dies erfordert jedoch das Festlegen des Texts mithilfe von Code.Wenn es sich nur um einfachen Text handelt, gibt es viele Möglichkeiten, ein Zeilenumbruchzeichen (LF) in statischen Zeichenfolgenressourcen zu umgehen .
Einschließen der Zeichenfolge in doppelte Anführungszeichen
Am saubersten ist es, die Zeichenfolge in doppelte Anführungszeichen zu setzen.
Dadurch wird das Leerzeichen so interpretiert, wie es angezeigt wird, und nicht reduziert.
Dann können Sie bei dieser Methode einfach Newline normal verwenden (keine Einrückung verwenden).
Beachten Sie, dass einige Zeichen in diesem Modus ein spezielles Escapezeichen erfordern (z. B.
\"
).Die folgenden Escape-Sequenzen funktionieren auch im Anführungszeichenmodus.
Bei Verwendung einer einzeiligen XML-Datei zur Darstellung mehrzeiliger Zeichenfolgen
Der eleganteste Weg, um dem Zeilenumbruch in XML zu entkommen, ist der Codepunkt (10 oder 0xA in Hex) mithilfe der XML / HTML-Entität


oder
. Dies ist die XML-Methode, um Zeichen zu umgehen .Dies scheint jedoch nur im Anführungszeichenmodus zu funktionieren.
Eine andere Methode ist
\n
meiner Meinung nach die einfache Verwendung , obwohl sie die Lesbarkeit negativ beeinflusst (da es sich nicht um eine spezielle Escape-Sequenz in XML handelt, wird sie von Android Studio nicht hervorgehoben).Fügen Sie nach keiner dieser Escape-Sequenzen einen Zeilenumbruch oder ein Leerzeichen ein, da dies als zusätzlicher Leerzeichen interpretiert wird.
quelle