2014-10-19 17 views
9

Ich habe eine App gemacht, ich habe es getestet und es war in Ordnung auf meinem Handy. Aber ... als ich die .apk jemandem gegeben habe, dessen Telefonsprache RTL ist, ist das ganze Layout kaputt gegangen und es hat alles vermasselt.Deaktivieren Sie automatische Layoutänderung auf Android

Meine Frage ist - Wie kann ich meine App zwingen, nur LTR zu verwenden und die automatische Layoutänderung zu deaktivieren, die mein ganzes App-Design durchbricht?

Antwort

9

Android 4.2 hat die vollständige native Unterstützung für RTL-Layouts hinzugefügt. Um die Vorteile der RTL-Layout-Spiegelung, einfach die folgenden Änderungen an Ihrer App:

  • Declare in Ihrer App-Manifest, dass Ihre App unterstützt RTL Spiegelung. Fügen Sie android:supportsRtl="true" dem Element in Ihrer Manifest-Datei hinzu.

  • Ändern Sie alle "links/rechts" -Layout-Eigenschaften Ihrer App in neue "Start/Ende" -Equivalente. Wenn Sie Ihre App auf Android 4.2 ausrichten (die Ziel-sdkVersion der App oder minSdkVersion ist 17 oder höher), dann sollten Sie "start" und "end" anstelle von "left" und "right" verwenden. Für Beispiel sollte android:paddingLeftandroid:paddingStart werden. Wenn Ihre App mit früheren Versionen als Android 4.2 (die App ZielSdkVersion oder minSdkVersion ist 16 oder weniger) arbeiten soll, dann sollten Sie hinzufügen "Start" und Ende "zusätzlich zu" links "und" rechts ". Für Beispiel würden Sie beide und android:paddingStart verwenden.

Für eine präzisere Kontrolle über Ihre App UI in beiden LTR und RTL-Modus, Android 4.2 enthält die folgenden neuen APIs View-Komponenten verwalten zu helfen:

  • android: layout - Attribut für die Einstellung der Richtung eines Komponentenlayouts.
  • android: textDirection - Attribut zum Einstellen der Richtung eines Komponententextes.
  • android: textAlignment - Attribut zum Einstellen der Ausrichtung eines Komponententextes.
  • getLayoutDirectionFromLocale() - Methode für die Locale angegebenen Richtung bekommen

-- Source & Credits --

+3

Ich wollte die RTL deaktivieren, danke trotzdem, das Problem WAS diese blöde Zeile, die automatisch zu sein scheint Eclipse/AS, nur seinen Wert auf falsch geändert und es hat funktioniert. – Yehonatan

9

In Ihrem Manifest-Datei und in der Anwendung Tag fügen diese beiden Zeilen.

<manifest> 
    <application 
     . 
     . 
     . 
     android:supportsRtl="false" 
     tools:replace="android:supportsRtl" //(replace libraries' Rtl support with ours) 
     > 
    </application> 
</manifest> 

Anmerkung: (über zweite Zeile) Einige Bibliotheken haben Rtl in ihrem Manifest-Datei unterstützen, damit, wenn Sie diese Bibliotheken verwenden möchten Sie ihre manifest Codezeile mit Ihnen ersetzen müssen.

+0

löste mein Problem auch. Danke vielmals. – Merka

Verwandte Themen