Я разрабатываю приложение для Android, ориентацию которого я не хочу менять в альбомный режим, когда пользователь поворачивает устройство. Кроме того, я хочу, чтобы заблокированная ориентация была в портретном режиме на телефонах и альбомном режиме на планшетах. Можно ли этого достичь, если да, то как? Благодарю.
android
user-interface
Анкит Рават
источник
источник
Ответы:
Вам просто нужно определить свойство ниже внутри элемента активности в вашем
AndroidManifest.xml
файле. Это ограничит вашу ориентацию портретной.Пример:
<activity android:name="com.example.demo_spinner.MainActivity" android:label="@string/app_name" android:screenOrientation="portrait" > </activity>
если вы хотите, чтобы это применялось ко всему приложению, определите свойство ниже внутри тега приложения следующим образом:
<application> android:screenOrientation="sensorPortrait" </application>
Кроме того, согласно приведенному ниже комментарию Эдуарда Луки, вы также можете использовать,
screenOrientation="sensorPortrait"
если хотите включить поворот на 180 градусов.источник
sensorPortrait
если вы хотите, чтобы пользователь мог поворачивать экран на 180 градусов :)Вы должны добавить
android:screenOrientation="portrait"
директиву в свойAndroidManifest.xml
. Это нужно сделать в вашем<activity>
теге.Кроме того, в руководстве для разработчиков Android говорится, что:
источник
Я вижу, вы приняли ответ, который не решает полностью вашу проблему:
android:screenOrientation="portrait"
Это заставит ваше приложение быть портретным как на телефонах, так и на планшетах.
Вы можете принудительно установить приложение в «предпочтительной» ориентации устройства, используя
android:screenOrientation="nosensor"
Это приведет к тому, что ваше приложение будет работать в портретной ориентации на большинстве телефонов и на планшетах. Есть много телефонов с клавиатурами, которые предназначены для ландшафтного режима. Принуждение вашего приложения к портретной ориентации может сделать его практически непригодным для использования на таких устройствах. Android недавно также переходит на другие типы устройств. Лучше всего позволить устройству выбрать предпочтительную ориентацию.
источник
Это может быть ... вы должны программно определить, что это планшет или телефон ... Сначала проверьте, является ли устройство телефон или планшет
Определите, является ли устройство смартфоном или планшетом?
Планшет или телефон - Android
Потом......
if(isTablet) { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); }else { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); }
источник
<activity android:name=".yourActivity" android:screenOrientation="portrait" ... />
добавить в основную деятельность и добавить
android:configChanges="keyboardHidden"
чтобы ваша программа не меняла режим при вызове клавиатуры.
источник
Установите книжную ориентацию экрана в файле манифеста под тегом активности.
источник
android:screenOrientation="locked"
in
<application>
для всего приложения in<activity>
для фактической активностиисточник
Установите книжную ориентацию экрана в файле манифеста под тегом активности.
Вот пример
Вам нужно войти в каждое действие
Добавить в действие следующие строки
для портрета
android:screenOrientation="portrait" tools:ignore="LockedOrientationActivity"
для пейзажа
android:screenOrientation="landscape" tools:ignore="LockedOrientationActivity"
Вот пример MainActivity
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="org.thcb.app"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:screenOrientation="portrait" tools:ignore="LockedOrientationActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".MainActivity2" android:screenOrientation="landscape" tools:ignore="LockedOrientationActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
источник
Просто добавь:
android:screenOrientation="portrait"
в " AndroidManifest.xml ":
<activity android:screenOrientation="portrait" android:name=".MainActivity" android:label="@string/app_name"> </activity>
источник