Добавьте android:screenOrientation="portrait"
к действию в AndroidManifest.xml. Например:
<activity android:name=".SomeActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" />
РЕДАКТИРОВАТЬ: Поскольку это стало очень популярным ответом, я чувствую себя очень виноватым, так как принуждение к портрету редко является правильным решением проблем, к которым оно часто применяется.
Основные предостережения с форсированным портретом:
- Это не освобождает вас от необходимости думать о деятельности
события жизненного цикла или правильное сохранение / восстановление состояния. Есть много
вещи, помимо вращения приложения, которые могут вызвать активность
разрушение / воссоздание, включая такие неизбежные вещи, как многозадачность. Там нет ярлыков; научитесь использовать связки и
retainInstance
фрагменты.
- Имейте в виду, что в отличие от довольно однородного восприятия iPhone, есть некоторые устройства, где портрет не является явно популярной ориентацией. Когда пользователи работают на устройствах с аппаратными клавиатурами или игровыми площадками, такими как Nvidia Shield, на Chromebook , на складных или на Samsung DeX , форсирование портрета может сделать Ваше приложение испытывает либо ограничение, либо гигантские трудности с юзабилити. Если в вашем приложении нет сильных аргументов UX, которые могут привести к негативным последствиям для поддержки других ориентаций, вам, вероятно, не стоит форсировать ландшафт. Я говорю о таких вещах, как «это кассовое приложение для одной конкретной модели планшета, которое всегда используется в стационарной аппаратной док-станции».
Таким образом, большинство приложений должны просто позволить датчикам телефона, программному обеспечению и физической конфигурации принимать собственное решение о том, как пользователь хочет взаимодействовать с вашим приложением. Однако о некоторых случаях вы можете подумать, если вас не устраивает поведение по умолчанию sensor
ориентация в вашем случае использования:
- Если ваша основная проблема - случайные изменения ориентации в середине активности, которые, по вашему мнению, сенсоры и программное обеспечение устройства не справляются (например, в игре на основе тилта), рассмотрите возможность поддержки пейзажа и портрета, но с использованием
nosensor
для ориентации. Это заставляет пейзаж на большинстве планшетов и портрет на большинстве телефонов, но я все равно не рекомендовал бы это для большинства «обычных» приложений (некоторые пользователи просто любят набирать текстовую клавиатуру на своих телефонах, а многие пользователи планшетов читают в портретном режиме - и вы должны позволить им).
- Если вам по-прежнему нужно по какой-то причине принудительно установить портрет,
sensorPortrait
может быть лучше, чем portrait
для Android 2.3+; это позволяет перевернуть портрет, что довольно часто встречается в планшетах.