Подтвердить что ты не робот

Как заблокировать ориентацию приложения Android в портретном режиме?

Я разрабатываю приложение для Android, ориентация которого я не хочу менять в ландшафтном режиме, когда пользователь поворачивает устройство. Кроме того, я хочу, чтобы заблокированная ориентация была портретным режимом на телефонах и ландшафтном режиме на планшетах. Может ли это быть достигнуто, если да, то как? Спасибо.

4b9b3361

Ответ 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

Установите ориентацию экрана на портрет в файле манифеста в теге активности.