Как заставить приложение игнорировать изменение ориентации экрана?

Есть ли способ сделать приложение полностью игнорировать изменение ориентации экрана?

Возможно, довольно легко переопределить поведение по умолчанию и запретить изменение ориентации экрана, когда клавиатура открыта / закрыта.

Изменение манифеста

Откройте манифест, перейдите на вкладку «Приложение» и выберите нужную операцию, которую вы хотите переопределить для поведения изменения ориентации.

  1. Внутри атрибутов вам нужно изменить два поля: Ориентация экрана: выберите портрет или пейзаж – в зависимости от того, что требуется. Это будет макет по умолчанию.

  2. Выберите события для изменений Config, которые вы хотите переопределить: в этом случае они являются скрытыми и ориентированными на клавиатуру.

Изменение действия

Теперь вам нужно переопределить одну функцию в пределах желаемой активности.

Просто добавьте функцию ниже в класс Activity.

 @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); } 

Это реализация по умолчанию, если вы используете Source->Override/Implement Methods .

Это оно! Теперь ваша ориентация всегда будет сохранена.

Помните, что этот параметр относится к каждой операции – поэтому вам нужно повторить этот шаг для каждого действия, которое вы хотите запретить изменение ориентации!

(На основе SDK 1.1)

Вы можете внести одинаковые изменения в код со следующей строкой (называемой активностью):

 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 

После того, как вы сделаете этот звонок, ваше приложение останется в ландшафтном (или портретном) режиме. Вы можете использовать один и тот же вызов (с другим перечислением ActivityInfo), чтобы сделать его чувствительным к перемещению ориентации снова.

В разделе « Разработка ориентированных на ориентацию приложений для Android » есть полная статья DevX по этой теме.

(ПРЕДУПРЕЖДЕНИЕ: поскольку я разместил эту ссылку, DevX выставил регистрационную стену.)

Если вы устанавливаете либо AndroidManifest.xml либо setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); Вы столкнетесь с проблемами с планшетами . Их естественная / стандартная ориентация – пейзаж.

Если вы действительно хотите полностью игнорировать изменения ориентации экрана, я бы использовал этот setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR); стоимость. Я больше об этом расскажу в решении Stack Overflow.

Вот xml:

 <activity android:name=".MyActivity" android:screenOrientation="nosensor" android:configChanges="orientation|keyboardHidden|keyboard"/> 

Вы можете определить свою активность в файле AndroidManifest.xml следующим образом:

 <activity android:name=".MyActivity" android:screenOrientation="portrait" android:configChanges="orientation|keyboardHidden|keyboard"/>` 

В этом случае вы должны установить свойство для каждого вида деятельности. Я не нашел встроенного решения для всех приложений.

 <activity android:screenOrientation="portrait"></activity> 

Добавьте это в свою деятельность:

android:configChanges="orientation|screenSize"

Вы хотите прочитать текущую ориентацию и сохранить ее таким образом на протяжении всей жизни своей деятельности, так что я сделал следующее, в конце onCreate:

 // choose an orientation and stay in it if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); else if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
Intereting Posts
Android: пользовательский ListAdapter расширяет возможности BaseAdapter при запуске приложения Android задайте вопрос – какой уровень API я устанавливаю? Могу ли я заставить кнопку «Назад назад» вернуться на два этапа в стек активности? NullPointerException при вызове RingTonePreference на Samsung Galaxy S Эффект карусели Coverflow аналогичен iPhone / iPad в Android Как передать несколько аргументов через xml для настраиваемого сеттера при использовании привязки данных Android Исходная ошибка Ionic Framework на Android Добавление аудиофайлов в ресурсы Android Как реализовать этот тип Progressbar в android с помощью xml-файла Как получить список запущенных сервисов в Android? PhoneGap Build Push Notification (Android) Запланировать событие, которое будет выполнено в будущем (Cron Job the Android) Fwrite () в C & readInt () в Java отличается в endianess Статистика устройств с данными аппаратными аксессуарами, датчиками и т. Д.? Отправить изображение с URL-адреса в виде вложения в андроид