Я разрабатываю приложение для Android, ориентация которого я не хочу менять в ландшафтном режиме, когда пользователь поворачивает устройство. Кроме того, я хочу, чтобы заблокированная ориентация была портретным режимом на телефонах и ландшафтном режиме на планшетах. Может ли это быть достигнуто, если да, то как? Спасибо.
Как заблокировать ориентацию приложения Android в портретном режиме?
Ответ 1
Вам просто нужно определить свойство ниже внутри activity в вашем файле AndroidManifest.xml
. Это ограничит ориентацию на портрет.
Android: screenOrientation = "портрет"
Пример:
<activity
android:name="com.example.demo_spinner.MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" >
</activity>
Дополнительно, в соответствии с комментарием Эдуарда Лука, вы также можете использовать screenOrientation="sensorPortrait"
, если вы хотите включить поворот на 180 градусов.
Ответ 2
Вы должны добавить директиву android:screenOrientation="portrait"
в свой AndroidManifest.xml
. Это должно быть сделано в тэге <activity>
.
Кроме того, руководство Android Developers сообщает, что:
[...] вы также должны явно заявить, что ваше приложение требует либо портретной, либо альбомной ориентации с помощью элемент. Например,
<uses-feature android:name="android.hardware.screen.portrait" />
.
Ответ 3
Я вижу, что вы приняли ответ, который полностью не решает вашу проблему:
android:screenOrientation="portrait"
Это заставит ваше приложение быть портретом на обоих телефонах и планшетах.
Вы можете заставить приложение принудительно выбрать предпочтительную ориентацию устройства, используя
android:screenOrientation="nosensor"
Это приведет к форсированию вашего приложения к портрету на большинстве телефонов телефонов и пейзаже на планшетах. Есть много телефонов с клавиатурами, которые были разработаны для ландшафтного режима. Принуждение приложения к портрету может сделать его практически непригодным для использования на таких устройствах. Android недавно перешел на другие типы устройств. Лучше всего просто выбрать устройство для выбора предпочтительной ориентации.
Ответ 4
Возможно, вам придется идентифицировать планшет или телефон программно...
if(isTablet)
{
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}else
{
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
Ответ 5
<activity android:name=".yourActivity"
android:screenOrientation="portrait" ... />
добавить к основному виду деятельности и добавить
android:configChanges="keyboardHidden"
чтобы ваша программа не меняла режим при вызове клавиатуры.
Ответ 6
Установите ориентацию экрана на портрет в файле манифеста в теге активности.