Gibt es eine Möglichkeit, die Ausrichtung zur Laufzeit zu sperren? Zum Beispiel möchte ich dem Benutzer erlauben, den Bildschirm für Querformat zu sperren, wenn sich der Benutzer gerade im Querformat befindet, und die Menüoption umschalten.
android
orientation
Jared
quelle
quelle
Achten Sie auf den Unterschied zwischen dem, was getConfiguration zurückgibt, und dem, was setRequestedOrientation wünscht - beide sind int, stammen jedoch aus unterschiedlichen konstanten Definitionen.
Hier erfahren Sie, wie Sie die aktuelle Ausrichtung sperren und dabei 180-Grad-Flips zulassen
quelle
Dies funktioniert auf Geräten mit umgekehrtem Hoch- und Querformat.
Schloss Orientierung:
Orientierung freischalten:
quelle
"Returns the rotation of the screen from its "natural" orientation."
abrufen . Auf einem Telefon, auf dem ROTATION_0 als Hochformat angezeigt wird, ist dies wahrscheinlich korrekt. Auf einem Tablet ist die "natürliche" Ausrichtung jedoch wahrscheinlich Querformat, und ROTATION_0 sollte Querformat anstelle von Hochformat zurückgeben.Ich schien einen ähnlichen Fall gehabt zu haben. Ich wollte jede Ausrichtung unterstützen, musste aber nach einem bestimmten Punkt im Workflow in der aktuellen Ausrichtung bleiben. Meine Lösung war:
Beim Eintritt in den geschützten Workflow:
Beim Beenden des geschützten Workflows:
quelle
Alternative zur @ pstoppani-Antwort mit Unterstützung für Tablets (Wie bei der @ pstoppani-Antwort funktioniert dies nur auf Geräten> 2.2)
-Test auf
Samsung Galaxy SIII
undSamsung Galaxy Tab 10.1
quelle
||
inrotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_90
und mitrotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_270
. Also ich habe 2 Zweifel :::: erstens, warumROTATION_0
stattROTATION_180
im zweiten Fall und ein anderes warum 0 Grad mit 90 nicht 180 prüfen ??||
Überprüfungen behandeln also die beiden möglichen Standardausrichtungen basierend auf der Berichtslandschaft des Geräts im Vergleich zum Hochformat.Hier ist mein Code, Sie könnten mit einer dieser Methoden Ihren Bildschirm sperren und nach Abschluss der Aufgabe ihn mit entsperren entsperren:
quelle
Hier ist die Xamarin-Konvertierung der obigen Antwort von @pstoppani.
HINWEIS: Dies ist für ein Fragment, ersetzen Sie Aktivität. mit diesem. wenn innerhalb einer Aktivität verwendet.
Dies ist nicht getestet, da es vor der Verwendung mit einem anderen Ansatz durchgeführt wurde, kann jedoch von Nutzen sein.
quelle