Intereting Posts
Как быстро проверить, доступен ли сервер URL-адресов Ли RecognitionListener.onError () автоматически SpeechRecognizer.cancel ()? В чем разница между четким кешем и четкими данными в настройках Android Двойной фрагмент, вращающийся Android с ActionBar Android: как получить значение атрибута «listPreferredItemHeight» в коде? Отключение функции удаления хром с помощью андроида Как протестировать отслеживание направления Android? Как закрыть приложение Android в приложении Delphi-XE5 Firemonkey? Appcompat v21 Предварительная леопапка панели инструментов Как я могу удерживать одну кнопку нажатой после нажатия на нее? Сортировка массива имен файлов, содержащих строки с номерами Размер окна всплывающего окна в android Прочитайте 3 выбранного элемента за одно и то же время Как изменить цвет текста всплывающего окна ошибки для EditText? Android – Как запустить Сервис в другой теме, чем основной поток?

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

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

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

Вам просто нужно определить свойство ниже внутри элемента активности в вашем файле AndroidManifest.xml . Это ограничит ориентацию на портрет.

андроид: screenOrientation = "портрет"

Пример:

  <activity android:name="com.example.demo_spinner.MainActivity" android:label="@string/app_name" android:screenOrientation="portrait" > </activity> 

Кроме того, согласно приведенному ниже замечанию Эдуарда Лука, вы также можете использовать screenOrientation="sensorPortrait" если вы хотите включить поворот на 180 градусов.

Вы должны добавить директиву android:screenOrientation="portrait" в вашем AndroidManifest.xml . Это нужно сделать в тэге <activity> .

Кроме того, в руководстве Android Developers говорится:

[…] вы также должны явно заявить, что ваше приложение требует либо портретной, либо альбомной ориентации с элементом. Например, <uses-feature android:name="android.hardware.screen.portrait" /> .

Я вижу, что вы приняли ответ, который не полностью решает вашу проблему:

 android:screenOrientation="portrait" 

Это заставит ваше приложение выглядеть как на телефонах, так и на планшетах.

Вы можете заставить приложение принудительно использовать «предпочтительную» ориентацию устройства, используя

 android:screenOrientation="nosensor" 

Это приведет к тому, что ваше приложение будет накладываться на портрет на большинстве телефонов телефонов и на планшетах. Есть много телефонов с клавиатурами, которые были разработаны для ландшафтного режима. Принуждение приложения к портрету может сделать его практически непригодным для использования на таких устройствах. Android недавно переносится на другие типы устройств. Лучше всего просто позволить устройству выбрать предпочтительную ориентацию.

Это может быть … вам нужно идентифицировать планшет или телефон программным путем …

 if(isTablet) { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); }else { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } 
 <activity android:name=".yourActivity" android:screenOrientation="portrait" ... /> 

Добавить к основной деятельности и добавить

 android:configChanges="keyboardHidden" 

Чтобы ваша программа не меняла режим при вызове клавиатуры.

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