Ограничения на ориентацию и возможность изменения размера игнорируются.

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

Игнорируйте ограничения по ориентации, изменению размера и соотношению сторон.

Для приложений, ориентированных на Android 17 и выше, ограничения по ориентации, изменению размера и соотношению сторон больше не применяются на дисплеях, минимальная ширина которых превышает 600dp. Приложения заполняют все окно дисплея независимо от соотношения сторон или предпочтительной ориентации пользователя, и черные полосы по бокам (pillarboxing) не используются.

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

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

Вы также можете проверить это поведение, используя фреймворк совместимости приложений и включив флаг совместимости UNIVERSAL_RESIZABLE_BY_DEFAULT .

Распространенные изменения, нарушающие обратную связь

Игнорирование ограничений по ориентации, масштабируемости и соотношению сторон может повлиять на пользовательский интерфейс вашего приложения на некоторых устройствах, особенно на элементы, разработанные для небольших макетов, заблокированных в портретной ориентации. Например, в приложениях могут возникать проблемы с растянутыми макетами, анимацией и компонентами, выходящими за пределы экрана. Любые ваши предположения о соотношении сторон или ориентации могут вызывать визуальные проблемы в вашем приложении. Узнайте больше о том, как избежать этих проблем и улучшить адаптивное поведение вашего приложения.

Распространенная проблема на складных устройствах с альбомной ориентацией экрана или при расчете соотношения сторон в таких сценариях, как многооконный режим, оконная обработка рабочего стола или подключенные дисплеи, заключается в том, что предварительный просмотр изображения с камеры выглядит растянутым, повернутым или обрезанным. Эта проблема часто возникает на устройствах с большими экранами и складных устройствах, поскольку приложения предполагают фиксированные соотношения между характеристиками камеры (такими как соотношение сторон и ориентация сенсора) и характеристиками устройства (такими как ориентация устройства и естественная ориентация). Узнайте больше об управлении предварительным просмотром изображения с камеры .

Разрешение поворота устройства приводит к более частому повторному созданию действий пользователя, что может привести к потере состояния пользователя, если оно не будет должным образом сохранено. Узнайте, как правильно сохранить состояние пользовательского интерфейса в разделе «Сохранение состояний пользовательского интерфейса» .

Детали реализации

Следующие атрибуты манифеста и API среды выполнения игнорируются на устройствах с большими экранами в полноэкранном и многооконном режимах:

Следующие значения для screenOrientation, setRequestedOrientation() и getRequestedOrientation() игнорируются:

  • portrait
  • reversePortrait
  • sensorPortrait
  • userPortrait
  • landscape
  • reverseLandscape
  • sensorLandscape
  • userLandscape

Что касается возможности изменения размера экрана, android:resizeableActivity="false", android:minAspectRatio и android:maxAspectRatio не оказывают никакого эффекта.

Исключения

Ограничения Android 17 на ориентацию, изменение размера и соотношение сторон не применяются в следующих ситуациях:

  • Игры (на основе флага android:appCategory )
  • Пользователи явно соглашаются на поведение приложения по умолчанию в настройках соотношения сторон устройства.
  • Экраны, минимальная ширина которых меньше sw600dp