2015-01-12 5 views
10

Wenn in einem TextView ein Text mit einem hebräischen Buchstaben beginnt, wird der gesamte Text im RTL-Modus angezeigt.Wie kann die automatische Textrichtung von rechts nach links für Hebräisch und Arabisch verhindert werden?

Das Problem ist, dass nur in meinem Fall das erste Wort in Hebräisch ist, während der gesamte Satz auf Englisch ist, so dass anstelle von

דני went to school 

der Benutzer sieht

            went to school דני 

(die erste Wort ist am Ende des Satzes, beim Lesen in Englisch)

Wie kann ich verhindern, dass dies geschieht und den Text von links starten?

+1

Ich würde sagen, es kommt darauf an, die richtigen BiDi-Zeichen hinzuzufügen, um anzuzeigen, dass der gesamte Text LTR ist, mit Ausnahme des kleinen RTL-Teils. Es sieht so aus, als wäre der Satz standardmäßig auf RTL eingestellt, da er mit RTL-Zeichen beginnt. Um dies zu überprüfen, können Sie versuchen, eine LTR-Sequenz am Anfang des Textes hinzuzufügen. – njzk2

+2

das Starten des Textes mit '\ u200E' könnte ausreichen, um den Text als LTR zu betrachten. – njzk2

+0

Danke, @ njzk2. Wenn Sie dies zu einer Antwort machen, werde ich es akzeptieren. –

Antwort

20

Unicode-Zeichen sind unkritisch LTR oder RTL. In den meisten Situationen orientiert sich der gesamte Text an der ersten Stelle. Hebräisches Zeichen sind RTL.

Siehe http://en.wikipedia.org/wiki/Bi-directional_text

Ihr Text mit einem RTL Zeichen beginnt, und wird daher RTL betrachtet. Sie können erzwingen, dass es als LTR angezeigt wird, indem Sie left-to-right mark, "\u200E" verwenden.

Wenn Sie Ihren Text mit diesem Sonderzeichen beginnen, wird dem Layoutsystem die explizite Ausrichtung des gesamten Textes mitgeteilt. RTL-Abschnitte werden jedoch weiterhin als solche betrachtet, da die Zeichen explizit RTL sind.

Zahlen sind z. B. kein starker Indikator und beeinflussen daher nicht die Richtung des Abschnitts, in dem sie platziert sind. Daher können Zahlen zwischen Abschnitten unterschiedlicher Richtungen ein Problem darstellen und müssen möglicherweise explizit angegeben werden.

+0

Siehe auch http://developer.android.com/reference/android/support/v4/text/BidiFormatter.html – vokilam

Verwandte Themen