2017-06-17 3 views
1

ich eine RelativeLayout haben und ich bin mit android:layout_marginEnd="170dp" und Android Studio sagt mir:Android Studio XML margin mit API 17

Um ältere Version als API 17 (Projekt gibt 15) zu unterstützen sollten Sie auch

android:layout_marginRight="170dp"

hinzufügen es ist kein Fehler, es kompiliert richtig, aber ich verstehe nicht, diesen Hinweis. Warum sollte ich marginRight verwenden? Warum nicht marginLeft? Kann mir jemand das Geheimnis dahinter erklären? Ich suchte nach anderen Antworten, aber ich habe es immer noch nicht verstanden.

Vielen Dank im Voraus.

Antwort

2

android:layout_marginEnd wurde in API 17 für eine bessere Unterstützung für Sprachen von rechts nach links hinzugefügt. Frühere Versionen von Android vor API 17 erkennen dieses Tag jedoch nicht. Daher müssen Sie auch android:layout_marginRight hinzufügen.

+0

aus Neugier: Wenn man ein 'layout_marginRight' hinzufügt und eine Rechts-nach-links-Sprache verwenden, ist dann nicht die Startränder falsch? – Henry

+0

Ich habe das Verhalten nie selbst getestet, aber es unterscheidet sich wahrscheinlich pro Gerät, da das angegebene Verhalten nicht klar ist. IIRC Sie können ein Standardgebietsschema für Ihre App festlegen, und einige Geräte gehen davon aus, dass wenn das Standardgebietsschema eine Sprache von links nach rechts ist und Sie android: layout_marginRight angeben und das Gerät eine Sprache von rechts nach links hat, diese automatisch vertauscht. Andere Geräte können dies jedoch nicht tun. Meine Vermutung ist, dass android: layout_marginEnd hinzugefügt wurde, um dieses fragmentierte Verhalten zu vermeiden und dem Entwickler zu erlauben, genau anzugeben, wie es aussehen sollte. –

Verwandte Themen