Мы рады сообщить, что Jetpack WindowManager 1.5.0 теперь работает стабильно!
В этом релизе WindowManager опирается на прочную основу адаптивности, что еще больше упрощает создание отточенных, адаптивных пользовательских интерфейсов, которые отлично выглядят на экранах всех размеров. По мере роста экосистемы Android пользователи взаимодействуют с приложениями на более широком спектре устройств, чем когда-либо прежде: от телефонов и складных устройств до планшетов, подключенных дисплеев, Chromebook и даже автомобильных дисплеев в режиме парковки.
WindowManager 1.5 ориентирован на предоставление более совершенных инструментов для этой разнообразной среды устройств.
Что нового в WindowManager 1.5?
В этом стабильном релизе добавлены новые контрольные точки для очень больших экранов, улучшен API встраивания активности и обеспечена большая гибкость при расчете метрик окна.
Новые категории размеров окон: Большие и Очень большие.
Самое значительное обновление в версии 1.5 — это добавление двух новых классов ширины окон: Large и Extra-large.
Классы размеров окон — это наш официальный, регламентированный набор контрольных точек области просмотра, который помогает вам проектировать и разрабатывать адаптивные макеты. В версии 1.5 мы расширяем эти рекомендации для экранов, выходящих за рамки обычных планшетов.
Вот новые контрольные точки ширины:
- Большой размер: для ширины от 1200 до 1600 dp
- Очень большой размер: для ширины ≥1600dp

Различные классы размеров окон в зависимости от ширины экрана.
Почему это важно?
Начиная с Android 16 QPR1 Beta 2, Android поддерживает подключенные дисплеи , позволяя пользователям подключать внешний дисплей к своему устройству и превращать его в инструмент, похожий на настольный компьютер, с большим экраном.

Телефон подключен к внешнему дисплею, на внешнем дисплее запущен рабочий стол.
С появлением этой новой функции крайне важны четкие рекомендации по использованию дисплеев большего размера.
На таких больших поверхностях простое увеличение масштаба расширенного макета на планшете не всегда обеспечивает наилучший пользовательский опыт. Например, почтовый клиент может без проблем отображать две панели (почтовый ящик и сообщение) в классе размера окна «Расширенный». Но на сверхбольшом настольном мониторе почтовый клиент может элегантно отображать три или даже четыре панели — например, почтовый ящик, список сообщений, полное содержимое сообщения и панель календаря/задач — все одновременно.
Предоставляя официальные контрольные точки для очень больших размеров экрана, WindowManager 1.5 дает четкий сигнал к внедрению макетов, специально разработанных для продуктивной работы за компьютером с большим объемом информации.
Классы размеров окон можно вычислить с помощью функции computeWindowSizeClass() , которая является функцией расширения библиотеки androidx.window.core.layout и наследует тип Set<WindowSizeClass> .
Чтобы добавить новые классы размеров окон в свой проект, просто вызовите функцию из набора WindowSizeClass.BREAKPOINTS_V2 вместо WindowSizeClass.BREAKPOINTS_V1 :
val currentWindowMetrics = WindowMetricsCalculator.getOrCreate() .computeCurrentWindowMetrics(LocalContext.current) val sizeClass = WindowSizeClass.BREAKPOINTS_V2 .computeWindowSizeClass(currentWindowMetrics)
Затем примените правильную компоновку, когда убедитесь, что в вашем приложении достаточно места:
if(sizeClass.isWidthAtLeastBreakpoint(
WindowSizeClass.WIDTH_DP_LARGE_LOWER_BOUND)){
...
// window is at least 1200 dp wide
}
Адаптивные библиотеки
Библиотека Compose Material 3 Adaptive помогает создавать адаптивные пользовательские интерфейсы, которые автоматически подстраиваются под текущие настройки окна, такие как классы размеров окна или положение устройства.
Хорошая новость в том, что библиотека уже обновлена до новых контрольных точек! Начиная с версии 1.2 (сейчас находится на стадии релиз-кандидата), функции директивы построения панели по умолчанию поддерживают классы ширины окна Large и Extra-large.
Для включения новых точек останова достаточно указать это в файле сборки Gradle:
currentWindowAdaptiveInfo( supportLargeAndXLargeWidth = true)
Дополнительные улучшения
- Встраивание активности — автоматическое сохранение и восстановление : Теперь WindowManager может автоматически сохранять и восстанавливать состояние разделов, в которые встраивается активность. Это помогает сохранить расположение элементов на экране при повторном запуске процесса, что обеспечивает более стабильную и согласованную работу. Разработчикам больше не нужно сохранять и восстанавливать состояние вручную, они могут просто включить автоматическое сохранение, установив свойство EmbeddingConfiguration#isAutoSaveEmbeddingState .
- Расширенные возможности WindowMetrics : теперь вы можете вычислять WindowMetrics в контексте приложения, а не только в контексте Activity. Это обеспечивает большую гибкость при доступе к информации об окне из разных частей вашего приложения.
Как начать
Чтобы начать использовать новые классы размеров Large и Extra-large, а также другие функции версии 1.5 в ваших проектах Android, обновите зависимости вашего приложения в файле build.gradle.kts до последней стабильной версии:
dependencies {
implementation("androidx.window:window:1.5.0")
// or, if you're using the WindowManager testing library:
testImplementation("androidx.window:window-testing:1.5.0")
}
WindowManager 1.5 — это еще один шаг вперед в создании полностью адаптивных приложений , работающих на всех форм-факторах Android. Полный список изменений и исправлений ошибок смотрите в официальных примечаниях к выпуску .
Удачного программирования!
Продолжить чтение

Новости о продуктах
Мы рады объявить о важном этапе сближения мобильных и настольных вычислительных систем на Android: поддержка подключенных дисплеев стала общедоступной с выходом Android 16 QPR3!
Francesco Romano • 7 мин чтения

Новости о продуктах
Android Studio Panda 4 теперь стабильна и готова к использованию в продакшене. В этом релизе появились режим планирования, прогнозирование следующего изменения и многое другое, что делает создание высококачественных Android-приложений проще, чем когда-либо.
Matt Dyor • 5 мин чтения

Новости о продуктах
Если вы — разработчик Android-приложений, стремящийся внедрить в них инновационные функции искусственного интеллекта, то недавно мы выпустили новые мощные обновления.
Thomas Ezan • 3 мин чтения
Будьте в курсе событий
Получайте еженедельно самые свежие новости о разработке Android прямо на свою электронную почту.




