ist es möglich,
in TextView hinzuzufügen ? Hat jemand ähnliche Funktionen erreicht?
Ich möchte nicht unterbrechbaren Speicherplatz in TextView haben.
TextView
respektiert das Unicode-Leerzeichen ( \u00A0
) ohne Unterbrechung , das eine einfachere / leichtere Lösung als HTML wäre.
\u00A0
ist ein nicht brechender Raum,\u0020
ist kein nicht brechender Raumquelle
Es ist möglich,
eine lesbare Lösung zu haben. Das Einfügen\u00A0
oder 
oder 
/ oder 
in den Text vermittelt dem Leser des Quellcodes (oder dem Übersetzer) nicht wirklich viele Informationen, es sei denn, Sie erinnern sich an die Hex-Codes. Hier ist eine Möglichkeit, die benannte Entität zu verwenden instrings.xml
:Dadurch wird die fehlende Deklaration erstellt. Die ursprüngliche HTML- Deklaration finden Sie unter https://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent, auf die von den üblichen XHTML-DTDs verwiesen wird . All dies funktioniert, da der XML-Parser diese beim Laden der Datei liest und ersetzt, sodass die Entität in den resultierenden kompilierten Ressourcen nicht vorhanden ist.
in Android Text (CharSequence
) RessourcenGerät und Vorschau (Vorschau erkennt HTML nicht)
in Android String (formatiert) RessourcenDann im Code:
Gerät und Vorschau (Vorschau erkennt keine Entitäten und Java-Zeichenfolgen sind wörtlicher Text!)
Weitere Tricks
Dies sind nur beispielhafte Verwendungen von DTD-Entitäten. Verwenden Sie diese nach Ihren Wünschen.
Beide helfen beim Hervorheben:
quelle
’
Charakter einwandfrei, es müssen keine Apostroph-Entitäten erstellt werden.<string name="original">Don’t wrap %1$s</string>
funktioniert wie erwartet.'
VS’
. Android hat keine Probleme mit ausgefalleneren Unicode-Zeichen, aber es hat ein Problem mit ASCII 0x27, das maskiert werden muss. Die Entität ist nur eine Annehmlichkeit, ich habe sie nur dort abgelegt, um zu demonstrieren, wo sie nützlich sein könnte.
das\u00A0
con
undparam1
in derselben Datei hinzufügt .Die Textansicht sollte den nicht unterbrechenden Bereich berücksichtigen
oder
quelle
Eine einzigartige Situation, in die ich geriet, war das Hinzufügen eines nicht unterbrechenden Leerzeichens zu einer Zeichenfolgenressource, die
String.format
Parameter verwendete.Ich habe versucht, das nicht unterbrechende Leerzeichen einfach zu kopieren und in die Zeichenfolge einzufügen. Nach dem Kompilieren wurde es durch ein normales altes Leerzeichen ersetzt.
Das Entfernen des formatierten = "false" , das Nummerieren der Formatargumente und die Verwendung der Backslash-Notation haben bei mir funktioniert:
quelle
Das hat bei mir funktioniert:
quelle
Dies ist ein Beispiel für die Verwendung von nbsp in einer Textansicht
<string name="text">Example:\u00A0</string>
quelle