Можно довольно легко переопределить поведение по умолчанию и запретить изменение ориентации экрана при открытой / закрытой клавиатуре.
Изменение манифеста
Откройте манифест, перейдите на вкладку «Приложение» и выберите желаемое действие, которое вы хотите переопределить для поведения изменения ориентации.
В атрибутах вам нужно изменить два поля:
Ориентация экрана: выберите книжную или альбомную ориентацию - в зависимости от желаемого Это будет макет по умолчанию.
Выберите события для изменений конфигурации, которые вы хотите переопределить:
В данном случае это скрытая клавиатура и ориентация.
Изменение реализации действия
Теперь вам нужно переопределить одну функцию внутри требуемой операции.
Просто добавьте указанную ниже функцию в класс вашей деятельности.
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}
Это реализация по умолчанию, если используется Source->Override/Implement Methods
опция меню.
Вот и все! Теперь ваша ориентация всегда будет сохраняться.
Помните, что этот параметр относится к каждому действию - поэтому вам нужно повторять этот шаг для каждого действия, для которого вы хотите запретить изменение ориентации!
(на основе SDK 1.1)