Intereting Posts
Имеет ли yieldIfContendedSafely () личную выгоду от транзакции? Менеджер SDK не смог установить каталог блокировки «java.exe» HttpURLConnection – "https: //" против "http: //" Почему Android использует концепцию Java вместо языка D или C или C ++? Но веб-браузер Chromium находится на C ++, его очень сложное совпадение Проверьте качество изображения перед OCR Android-мобиль не обнаруживает беспроводную сеть, созданную на моем ноутбуке Можно ли полагаться на SQLiteConstraint и позволить SQLite проверять меня? Есть улов? Как добавить событие onclick в кнопку в списке, добавленное addFooterView? Очистка данных другого приложения Можем ли мы отправить данные с устройства Android на другое устройство Android напрямую (p2p) без сервера посередине? Встроенное мобильное приложение, использующее google dart language Как позиционировать элементы управления масштабированием MapView в другом месте на экране? Получение уникального идентификатора для маршрутизатора WiFi Создайте NinePatch / NinePatchDrawable во время выполнения Сбой браузера эмулятора Android

Как переключить блокировку ориентации в Android?

Я хочу создать флажок в моей настройке «Активность», которая позволяет пользователю переключать ориентацию.

В подобных вопросах люди пишут только о полной блокировке ориентации (путем переопределения методаConfigurationChanged или добавления configChanges в AndroidManifest.xml) или обеспечения ориентации (посредством setRequestedOrientation).

Есть ли способ переключить блокировку ориентации?


EDIT: Я создал метод, который устанавливает предпочтительную ориентацию в одно из трех состояний: пейзаж, портрет и датчик. Этот метод используется в сочетании с поиском ориентации getResources().getConfiguration().orientation) И сохранения выбранной ориентации в предпочтениях. Затем в активности, которая должна блокировать ориентацию, я запускаю этот метод с предпочтительной ориентацией от предпочтений.

 private static void setActivityOrientation(Activity activity, int preferenceOrientation) { if (preferenceOrientation == Configuration.ORIENTATION_LANDSCAPE) { if( activity.getRequestedOrientation() != ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE){ // You need to check if your desired orientation isn't already set because setting orientation restarts your Activity which takes long activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); } } else if (preferenceOrientation == Configuration.ORIENTATION_PORTRAIT) { if( activity.getRequestedOrientation() != ActivityInfo.SCREEN_ORIENTATION_PORTRAIT){ activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } } else { if( activity.getRequestedOrientation() != ActivityInfo.SCREEN_ORIENTATION_SENSOR){ activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR); } } } 

Solutions Collecting From Web of "Как переключить блокировку ориентации в Android?"