Seit Android 4.2 werden RTL-Sprachen vollständig unterstützt.
Start
und End
können Left
und Right
ersetzen, um Layout zu definieren, aber Android 4.1 und ältere Versionen unterstützen nicht Start und Ende.
Um nur ein xml für beide Layoutrichtungen zu verwenden, können wir sowohl start
als auch left
oder end
und right
für die Retrokompatibilität verwenden.
Zum Beispiel:
Bei Android 4.3 verwenden Geräte nur die Parameter start
und end
und ignorieren left
und right
, wo beide definiert sind.
Aber mit Android 4.2.2 Gerät verwenden beide Parameter!
Ich muss den Ordner layout-v17
verwenden, um jedes Layout mit den Parametern start
und end
zu duplizieren.
Gibt es eine andere Lösung?
Nun, ich weiß nicht, ob es offizielle Arbeit gibt, also habe ich einen Hack implementiert.
Ich habe das am Ende meiner gradle.build
-Datei hinzugefügt
Sie kopiert einfach alle Ihre Dateien von layout
nach layout-ldrtl
und tauscht alle left
und right
aus.
Sie können auch alle left
und right
bis start
und end
ersetzen und sie in den Ordner layout-v17
setzen, wenn Sie möchten, aber ich habe festgestellt, dass dies besser funktioniert, da android:gravity="start"
funktioniert nicht funktionieren!
Ich bin ziemlich neu bei Gradle
, also entschuldige mich, wenn das mit einem viel einfacheren Skript gemacht werden kann:)
Dieser Beitrag ist alt, aber immer noch gültig.
Ich habe das gleiche Problem. Ich habe herausgefunden, dass dieses Problem nur dann auftritt, wenn die Ansicht in eine Relativansicht eingebettet ist. In dieser Situation führt eine alignparentright in Kombination mit alignparendend zu einer Ansicht mit voller Breite, da sie sowohl den End- als auch den rechten Parameter verwendet. Wenn Sie das relative Layout entfernen und durch ein lineares Layout ersetzen, kann nur der Parameter alignparendend nicht mehr verwendet werden, aber Sie können die Schwerkraft verwenden. Android-Anwendung selbst stellt sicher, dass RTL ui gespiegelt wird
Tags und Links android right-to-left