Salam.
In meinem Projekt muss ich sowohl layout-ldltr
als auch layout-ldrtl
Layouts für Right-To-Left
und Left-To-Right
languages erstellen.
Ich starte eine Anwendung für die Sprache von rechts nach links, und alles ist gut.
Aber wenn sich die Ausrichtung geändert hat, lädt android layout-ldltr
layout gegen layout-ldrtl
, obwohl der aktuelle Locale
auf RTL-Sprache gesetzt ist !!!
Wie kann dieses Problem behoben werden?!
In AndroidManifest.xml
In layout-ldrtl\activity_main.xml
:
AKTUALISIEREN
Nach dem Kommentar von @JohanShogun ändere ich android:layoutDirection="rtl"
in android:layoutDirection="locale"
und das Problem wurde für die meisten Elemente gelöst.
Im ersten Foto sind alle Elemente sehr gut dargestellt:
Im Querformat, in der StickyListHeader-Listenansicht im Kopfzeilenelement, das oben auf dem Bildschirm angezeigt wird, wird Android von ltr verwendet Layout !!! :
Wenn Sie einen Ordner mit Layout-Land haben, wird es Präsident über Layout-ldrtl usw. nehmen, müssen Sie möglicherweise Ordner für Layout-Land-ldrtl usw. erstellen.
Eine andere Möglichkeit, mit der Sie Ihre Layouts von rechts nach links und von links nach rechts bearbeiten können, besteht darin, eine Layoutdatei beizubehalten, die für beide Versionen geschrieben wurde.
Auf einem LinearLayout usw. gibt es ein Attribut:
%Vor%Sie können dies auf den Wert von "Locale" einstellen, und Ihre horizontalen Layouts werden umgedreht.
Anstatt align_left/align_right
und gravity_left/gravity_right
zu verwenden, verwenden Sie stattdessen align_start/align_end
und gravity_start/gravity_end
(gilt für alle left/right
Attribute). Die Start- und End-Tags hängen von der Layout-Richtung ab. Wenn der Benutzer eine Ländereinstellung mit ltr
hat, ist Start und Ende ist rechts , wenn der Benutzer eine Ländereinstellung mit% co_de hat% Start ist richtig und Ende ist links .
Ich persönlich bevorzuge die Verwendung von Layout-Dateien, die mit rtl
und rtl
arbeiten und keine separaten haben. Es ist leicht, ein Update in einer Version zu verpassen, wenn Sie verschiedene Dateien behalten, was zu einer schlechten Benutzererfahrung führt.
Verschiebe auch dein Layout in den Layout-Ordner (entferne ltr
) und ändere dann alle "-ldrtl"
in android:layoutDirection="rtl"
.
Tags und Links android android-layout right-to-left android-5.0-lollipop left-to-right