Falsches Verhalten von RTL-Parametern hacken mit Android 4.2.2

8

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:

%Vor%

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?

    
Silwek 18.09.2013, 09:07
quelle

2 Antworten

3

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

%Vor%

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:)

    
Arthur 26.02.2015 12:37
quelle
1

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

    
Gillis Haasnoot 15.11.2015 21:23
quelle

Tags und Links