Дополнительно
Как отключить ландшафтный режим в Android?
Как я могу отключить ландшафтный режим для некоторых видов в моем приложении Android?
907
29
Добавить < код > android: screenOrientation = "портрет" < / code > к активности в AndroidManifest.xml. Например:
РЕДАКТИРОВАТЬ: Поскольку это стало супер-популярным ответом, я чувствую себя очень виноватым, поскольку форсирование портрета редко является правильным решением проблем, к которым его часто применяют.& Лт; br > Основные предостережения с принудительным портретом:
retainInstance
.Поэтому большинство приложений должны просто позволить телефонным датчикам, программному обеспечению и физической конфигурации принимать собственное решение о том, как пользователь хочет взаимодействовать с вашим приложением. Однако несколько случаев, о которых вы все еще можете подумать, если вы недовольны поведением по умолчанию
sensor
ориентации в вашем случае использования:Я не знал о переключателе файлов
AndroidManifest.xml
до прочтения этого поста, поэтому в своих приложениях я использовал это вместо этого:Добавьте этот
android: screenOrientation = "portrait"
в файл манифеста, где вы объявляете свою деятельность следующим образомЕсли вы хотите сделать с помощью Java-кода, попробуйте
перед тем, как вы вызовете метод setContentView для вашей деятельности в
onCreate ()
.Надеюсь, что это поможет и легко понятно для всех...
Многие ответы здесь предлагают использовать
"portrait"
в вашем файле AndroidManifest.xml. Это может показаться хорошим решением - но, как отмечено в документации, вы выделяете устройства, которые могут иметь только ландшафт. Вы также заставляете определенные устройства (которые лучше всего работают в пейзаже) идти в портрет, не получая надлежащей ориентации.Я предлагаю использовать
"nosensor"
вместо. Это позволит устройству использовать предпочтительную ориентацию по умолчанию, не заблокирует покупки / загрузки в Google Play и обеспечит, чтобы датчик не испортил вашу (в моем случае NDK) игру.Если вы хотите настройки пользователя,
тогда я бы порекомендовал
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Вы можете изменить настройки из меню настроек.
Я требую этого, потому что мои таймеры должны соответствовать тому, что на экране, а вращение экрана разрушит текущую активность.
Просто добавьте «Как эта линия» в свой манифест
Используйте это в onCreate () Действия
Просто добавьте этот атрибут в свой тег активности.
Вы должны изменить
android: screenOrientation = "sensorPortrait"
в AndroidManifest.xmlЕсли вы не 'Я не хочу лучше проходить через трудности добавления ориентации в каждом манифесте, создать класс BaseActivity (наследует 'Деятельность ' или № 39;AppCompatActivity ' который будет унаследован каждым действием вашего приложения вместо 'Деятельность ' или № 39;AppCompatActivity ' и просто добавьте следующий фрагмент кода в свой BaseActivity:
Как изменить ориентацию в некоторых видах
Вместо того, чтобы блокировать ориентацию всей активности, вы можете использовать этот класс для динамической прагматической блокировки ориентации с любого вашего взгляда: -
Сделайте свой взгляд Пейзаж
Сделайте свой вид Портрет
Разблокировка Ориентация
Ориентация Util Class
Добавьте
android: screenOrientation = "portrait"
к активности, которую вы хотите отключить в ландшафтном режиме.Если вы хотите отключить
Режим ландшафта для вашего приложения для Android
(или одного действия), все, что вам нужно сделать, это добавить,android: screenOrientation = "portrait"
к тегу активности в файлеAndroidManifest.xml
.Подобно:
Другой путь, Программный подход.
Если вы хотите сделать это программно, т.е. использование кода Java. Вы можете сделать это, добавив приведенный ниже код в класс Java активности, которую вы не хотите отображать в ландшафтном режиме.
Я надеюсь, что это поможет вам. Для получения более подробной информации вы можете посетить здесь введите описание ссылки здесь
Вы должны установить ориентацию каждого действия.
Вы можете заставить свою конкретную деятельность всегда оставаться в портретном режиме, написав это в своем манифесте.xml
Вы также можете заставить свою деятельность оставаться в режиме postrait, написав следующую строку в методе onCreate () вашей деятельности
Если вы используете Xamarin C #, некоторые из этих решений не будут работать. Вот решение, которое я нашел для работы.
Выше класса работает хорошо, аналогично другим решениям, также не применимо глобально и должно быть помещено в каждый заголовок действия.
использовать
Вы можете сделать это для всего вашего приложения, не делая все ваши действия расширенными базовым классом.
Хитрость заключается в том, чтобы убедиться, что вы включили подкласс приложений в свой проект. В его onCreate (), который вызывается при первом запуске вашего приложения, вы регистрируете объект ActivityLifecycleCallbacks (уровень API 14+) для получения уведомлений о событиях жизненного цикла активности.
Это дает вам возможность выполнять свой собственный код всякий раз, когда любое действие в вашем приложении запускается (или прекращается, или возобновляется, или что-то еще). На этом этапе вы можете вызвать setRequestedOrientation () для вновь созданной деятельности.
И не забудьте добавить app: name = ".MyApp" в файл манифеста.
добавить класс внутри метода oncreate ()