Wie deaktiviere ich die Ausrichtung auf Android?
Ich habe eine Anwendung, die ich möchte nur zu verwenden im portrait-Modus, so habe ich definiert
android:screenOrientation="portrait" in der XML-Manifestdatei. Dies funktioniert OK für die HTC Magic Telefon (Orientierung und verhindert, dass änderungen auf anderen Handys auch).
Aber ich habe ein problem mit der HTC G1 Telefon als ich öffnen Sie die hardware - QWERTZ-Tastatur (nicht die virtuelle Tastatur). Meine Tätigkeit bleibt im portrait-Modus, aber es scheint zu bekommen, neu gestartet und verliert alle seine Staaten. Dies geschieht nicht mit dem HTC Hero version.
Meine Anwendung ist ziemlich groß, so dass ich nicht wollen, es zu starten und verlieren alle Ihre Mitgliedstaaten, wenn die Tastatur geöffnet wird. Wie kann ich das verhindern?
InformationsquelleAutor der Frage Vidar Vestnes | 2009-10-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Update April 2013: tun Sie das nicht. Es war keine gute Idee, im Jahr 2009, als ich zuerst die Frage beantwortet und es ist wirklich keine gute Idee jetzt. Siehe diese Antwort von hackbod Gründen:
Vermeiden nachladen Aktivität mit asynctask auf die Ausrichtung ändern in android
Hinzufügen
android:configChanges="keyboardHidden|orientation"
zu Ihrem AndroidManifest.xml. Das sagt dem system, was die Konfiguration änderungen, die Sie gehen, um selbst zu behandeln - in diesem Fall durch nichts zu tun.Siehe Developer Referenz configChanges für mehr details.
Jedoch Ihre Anwendung kann jederzeit unterbrochen werden, z.B. durch ein Telefonat, so dass Sie sollte wirklich hinzufügen von code zu speichern, den Zustand Ihrer Anwendung, wenn es angehalten wird.
Update: ab Android 3.2, werden Sie auch brauchen, um hinzuzufügen, "screenSize":
Vom Developer guide Die Handhabung der Konfiguration Selbst Ändern
InformationsquelleAutor der Antwort Intrications
Müssen Sie ändern AndroidManifest.xml als Intrications (vormals Ashton) erwähnt und sicherzustellen, dass die Aktivität verarbeitet die onConfigurationChanged Ereignisses, wie Sie es wollen, behandelt. Dies ist, wie es Aussehen sollte:
InformationsquelleAutor der Antwort ubershmekel
Ich habe immer gefunden, brauchst du beide
InformationsquelleAutor der Antwort m00sey
Wie gesagt, set
android:configChanges
Ihrer Tätigkeit (in der manifest-Datei) zukeyboardHidden|orientation
und dann:1) Überschreiben
onConfigurationChanged()
2) Fügen Sie die folgende Zeile zu Ihrer Tätigkeit
onCreate()
Es ist besser, als zu fügen Sie dieselbe Zeile zu
onConfigurationChanged
weil Ihre app drehen, um portrait-Modus und dann wieder an die Landschaft (es wird passieren, nur eine Zeit, aber es ist ärgerlich).Sie können auch
android:screenOrientation="nosensor"
für Ihre Tätigkeit (im manifest). Aber mit diesem Weg bist du nicht in der Lage zu handhaben Ausrichtung verändert.InformationsquelleAutor der Antwort Dmitry Zaytsev
Verwenden Sie diese..
InformationsquelleAutor der Antwort Muhammad Aamir Ali
In der OnCreate-Methode Ihrer Aktivität verwenden Sie diesen code:
Nun Ihre Ausrichtung auf hochformat eingestellt und wird sich nie ändern.
InformationsquelleAutor der Antwort Numenor
In der AndroidManifest.xml Datei, für jede Aktivität, die Sie sperren wollen, fügen Sie die letzten
screenOrientation
Linie:Oder android:screenOrientation="landscape".
InformationsquelleAutor der Antwort Gil Allen
In Ihrem androidmanifest.xml Datei:
oder
InformationsquelleAutor der Antwort Jorgesys
Um den Bildschirm zu sperren, indem Sie code, den Sie verwenden müssen die tatsächliche rotation des Bildschirms (0, 90, 180, 270), und Sie haben, um zu wissen, die Natürliche position, die es in einem smartphone die Natürliche position wird hoch-und ein tablet, es wird Landschaft.
Hier ist der code (lock und unlock Methoden), es wurde getestet, bei einigen Geräten (smartphones und tablets) und es funktioniert Super.
InformationsquelleAutor der Antwort PoOk
In Visual Studio, Xamarin:
using Android.Content.PM;
zu Sie Aktivität namespace-Liste.[Activity(ScreenOrientation = Android.Content.PM.ScreenOrientation.Portrait)]
als ein Attribut, das Sie Klasse, so:
InformationsquelleAutor der Antwort Roy Doron
Hinzufügen
Ihrem manifest.
InformationsquelleAutor der Antwort saurabh
Bitte beachten Sie, dass keine der Methoden scheint zu funktionieren jetzt!
In Android Studio 1 eine einfache Möglichkeit ist das hinzufügen von
android:screenOrientation="nosensor"
.Diese effektiv sperren der Bildschirmausrichtung.
InformationsquelleAutor der Antwort kephalian