Czy istnieje sposób na zablokowanie orientacji podczas działania? Na przykład chciałbym zezwolić użytkownikowi na zablokowanie ekranu w orientacji poziomej, jeśli użytkownik jest obecnie w orientacji poziomej, i przełączanie opcji menu.
android
orientation
Jared
źródło
źródło
Uważaj na różnicę między tym, co zwraca getConfiguration, a tym, czego chce setRequestedOrientation - oba są typu int, ale pochodzą z różnych definicji stałych.
Oto jak zablokować bieżącą orientację, pozwalając jednocześnie na obrót o 180 stopni
źródło
Działa to na urządzeniach z odwróconym portretem i odwróconym krajobrazem.
Zablokuj orientację:
Odblokuj orientację:
źródło
"Returns the rotation of the screen from its "natural" orientation."
źródło rotacji . Dlatego na telefonie stwierdzenie, że ROTATION_0 to portret, jest prawdopodobnie poprawne, ale na tablecie jego „naturalna” orientacja to prawdopodobnie pozioma, a ROTATION_0 powinien zwrócić poziomą zamiast pionową.Wydawało mi się, że miałem podobny przypadek. Chciałem wspierać dowolną orientację, ale musiałem pozostać przy obecnej orientacji po pewnym momencie w przepływie pracy. Moje rozwiązanie brzmiało:
Przy wejściu do chronionego przepływu pracy:
Przy wyjściu z chronionego przepływu pracy:
źródło
Alternatywa dla odpowiedzi @pstoppani z obsługą tabletów (podobnie jak odpowiedź @pstoppani, będzie działać tylko na urządzeniach> 2.2)
-Testowane na
Samsung Galaxy SIII
iSamsung Galaxy Tab 10.1
źródło
||
wrotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_90
irotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_270
. Więc mam 2 wątpliwości :::: po pierwsze, dlaczegoROTATION_0
zamiastROTATION_180
w drugim przypadku i po drugie po co sprawdzać 0 stopni z 90 a nie 180 ??||
testy obsługują dwie możliwe domyślne orientacje w oparciu o urządzenie raportujące poziomo i pionowo.Oto mój kod, możesz zablokować ekran jedną z tych metod, a po zakończeniu zadania odblokować go za pomocą unlockOrientation:
źródło
Oto konwersja Xamarin odpowiedzi @pstoppani powyżej.
UWAGA: dotyczy fragmentu, wymień aktywność. z tym. jeśli jest używany w ramach działania.
Nie jest to testowane, ponieważ przed użyciem było inne podejście, ale może się przydać.
źródło