Поворот экрана в Android Studio: полное руководство

Эмулятор в Android Studio не поворачивает экран при нажатии кнопки вращения — чаще всего причина в отключённом автоповороте внутри самой виртуальной системы Android, а не в сбое среды разработки. Кнопка Rotate на панели инструментов эмулятора лишь меняет положение «устройства», но если в настройках виртуального Android выключен Auto-rotate, интерфейс останется в портретной ориентации.

В этой статье разберём все способы поворота экрана: кнопки панели эмулятора, горячие клавиши, настройки автоповорота, а также программное управление ориентацией через манифест и код приложения. Материал подходит и для тех, кто тестирует своё приложение, и для тех, кто просто хочет зафиксировать экран в нужном положении.

Поворот экрана кнопками панели эмулятора

Самый быстрый способ — панель инструментов, которая появляется рядом с окном эмулятора. На ней есть две кнопки со стрелками: Rotate left и Rotate right. Одно нажатие поворачивает виртуальное устройство на 90 градусов в выбранную сторону.

Если панель инструментов скрыта, откройте меню эмулятора через три точки (Extended controls) или проверьте настройки отображения окна эмулятора в File → Settings → Tools → Emulator — там есть опция запуска эмулятора в отдельном окне с панелью управления.

  • 🔄 Rotate left — поворот против часовой стрелки на 90°
  • 🔁 Rotate right — поворот по часовой стрелке на 90°
  • 📱 Повторное нажатие возвращает устройство в исходную ориентацию
  • 🖥️ Поворот меняет и размер окна эмулятора на экране компьютера

Горячие клавиши для поворота

Для быстрого вращения без мыши используйте сочетания клавиш. В стандартной раскладке эмулятора поворот выполняется комбинацией Ctrl + стрелка влево или Ctrl + стрелка вправо (на macOS — с клавишей Cmd вместо Ctrl, точное сочетание зависит от версии среды).

Проверить актуальные сочетания можно в справке эмулятора: откройте Extended controls → Help → Keyboard shortcuts. Там перечислены все горячие клавиши конкретной версии, включая поворот, кнопки навигации и управление громкостью.

⚠️ Внимание: сочетания клавиш могут различаться между версиями Android Studio и операционными системами. Если стандартная комбинация не срабатывает, сверьтесь со списком горячих клавиш в разделе Help самого эмулятора.

Почему экран не поворачивается: включение автоповорота

Классическая ситуация: вы нажали Rotate, устройство «легло набок», но содержимое экрана осталось вертикальным. Это значит, что в системе виртуального устройства отключён автоповорот. Эмулятор имитирует реальный смартфон, а на нём вращение контролируется системной настройкой.

Порядок действий для включения автоповорота на виртуальном устройстве:

☑️ Включение автоповорота в эмуляторе

Выполнено: 0 / 5

Также проверьте само приложение: некоторые программы принудительно фиксируют ориентацию через манифест, и никакие системные настройки их не повернут. Для проверки поверните экран на рабочем столе лаунчера или в системных настройках — если там вращение работает, ограничение заложено в конкретном приложении.

📊 С какой проблемой поворота экрана вы столкнулись
Экран не поворачивается вообще
Поворачивается устройство, но не интерфейс
Приложение сбрасывается при повороте
Нужно зафиксировать ориентацию в коде

Программное управление ориентацией

Разработчику часто нужно не просто повернуть экран, а задать поведение приложения при смене ориентации. Основной инструмент — атрибут android:screenOrientation в файле AndroidManifest.xml внутри тега <activity>.

<activity

android:name=".MainActivity"

android:screenOrientation="portrait">

</activity>

Основные значения атрибута и их поведение:

ЗначениеПоведение экрана
portraitВсегда вертикальная ориентация
landscapeВсегда горизонтальная ориентация
sensorПоворот по данным датчика во все стороны
unspecifiedСистема выбирает ориентацию сама
userТекущая ориентация, выбранная пользователем

Изменить ориентацию можно и динамически из кода активности:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
Нюанс для Android 8.0 и новее

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

Сохранение состояния при повороте экрана

При повороте устройства система по умолчанию уничтожает и пересоздаёт активность. Это стандартное поведение Android: пересоздание позволяет загрузить ресурсы, подходящие под новую ориентацию (например, другой макет из папки layout-land). Побочный эффект — теряются данные, введённые пользователем, если они не сохранены.

Есть несколько подходов к решению:

  • 💾 onSaveInstanceState() — сохранение данных в Bundle перед уничтожением активности
  • 🏗️ ViewModel — архитектурный компонент, переживающий пересоздание активности
  • ⚙️ android:configChanges="orientation|screenSize" — запрет пересоздания, активность сама обрабатывает поворот через onConfigurationChanged()
⚠️ Внимание: атрибут configChanges считается крайней мерой. Официальная документация Android рекомендует сначала использовать ViewModel и onSaveInstanceState, а блокировку пересоздания применять только при реальной необходимости — например, для видеоплееров.

Тестирование разных ориентаций в Layout Editor

Проверить, как выглядит макет в горизонтальном положении, можно прямо в редакторе макетов, без запуска эмулятора. Откройте XML-файл разметки и на панели предпросмотра найдите кнопку смены ориентации — иконку устройства со стрелкой. Один клик переключает предпросмотр между portrait и landscape.

Для разных ориентаций можно создавать отдельные макеты. Поместите альтернативный XML-файл в папку res/layout-land/ — система автоматически подхватит его при повороте устройства в горизонтальное положение. Имена файлов в обеих папках должны совпадать.

Типичные проблемы и их решения

Если поворот работает некорректно, пройдитесь по типичным причинам. Большинство из них диагностируется за пару минут без переустановки чего-либо.

Эмулятор завис при повороте. Закройте виртуальное устройство и запустите его заново через Device Manager. Если проблема повторяется, попробуйте холодную загрузку: в списке устройств выберите Cold Boot Now в меню действий эмулятора.

Приложение падает при повороте. Откройте вкладку Logcat и воспроизведите падение — в логе будет видно, какое исключение выброшено. Частые причины: обращение к уже уничтоженным объектам после пересоздания активности или неинициализированные переменные в новой копии активности.

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

Часто задаваемые вопросы

Как повернуть экран эмулятора без мыши?

Используйте сочетание Ctrl + стрелка влево/вправо (на macOS — с клавишей Cmd). Точные сочетания для вашей версии смотрите в разделе Extended controls → Help → Keyboard shortcuts.

Почему кнопка Rotate нажимается, но экран не вращается?

Наиболее вероятная причина — выключенный автоповорот в настройках виртуального Android. Откройте шторку быстрых настроек внутри эмулятора и включите Auto-rotate. Также проверьте, не зафиксирована ли ориентация в манифесте самого приложения.

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

Добавьте в манифест к нужной активности атрибут android:screenOrientation="portrait" для вертикальной или "landscape" для горизонтальной фиксации. Из кода используйте метод setRequestedOrientation().

Почему при повороте пропадают введённые данные?

Система уничтожает и пересоздаёт активность при смене ориентации. Сохраняйте данные через onSaveInstanceState() или храните состояние во ViewModel, который переживает пересоздание.

Можно ли проверить горизонтальный макет без запуска эмулятора?

Да. В редакторе макетов Android Studio есть кнопка смены ориентации предпросмотра. Для полноценной горизонтальной версии создайте отдельный макет в папке res/layout-land/.