Рады сообщить, что вышла стабильная версия 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.
- Очень большой: для экранов шириной от 1600 dp.
Разные классы размеров окон в зависимости от ширины экрана.
Почему это важно?
Начиная с Android 16 QPR1 Beta 2, ОС поддерживает подключенные дисплеи. Пользователи могут подключить к устройству внешний дисплей и превратить его в инструмент, похожий на настольный компьютер с большим экраном.
Телефон, подключенный к внешнему дисплею, на котором запущен сеанс рабочего стола.
Поэтому важно, чтобы в руководстве по дизайну были четкие рекомендации по поддержке больших экранов.
На таких больших экранах простое масштабирование макета Expanded для планшетов не всегда обеспечивает наилучшее удобство для пользователей. Например, почтовый клиент может удобно отображать две панели (почтовый ящик и сообщение) в классе размера окна «Расширенное». Но на очень большом мониторе настольного компьютера почтовый клиент может элегантно отображать три или даже четыре панели – возможно, почтовый ящик, список сообщений, полное содержимое сообщения и панель календаря/задач одновременно.
Благодаря официальным контрольным точкам для очень больших экранов 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, но и из контекста Application. Это обеспечивает большую гибкость при доступе к информации об окне из разных частей приложения.
С чего начать
Чтобы начать использовать новые классы размеров 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 16 QPR3 стала общедоступной поддержка подключенных дисплеев. Это важный шаг к сближению мобильных и настольных компьютеров на Android.
Francesco Romano • Время на чтение: 7 минут -
Новости о продуктахСегодня на Саммите для разработчиков Android мы объявляем о широкой доступности многих инструментов и API, которые помогут вам преодолевать повседневные трудности и дадут больше гибкости при создании отличных приложений для Android.
Matthew McCullough • Время на чтение: 4 минуты -
Новости о продуктахAndroid Studio Rabbit 2 теперь стабильна и готова к использованию в рабочей среде. В этом выпуске представлены ключевые функции, которые помогут вам в разработке, например Bring Your Own Agent, новые функции XR Emulator, обновление LeakCanary, новый инструмент управления навыками агента, код-ревью с помощью ИИ и многое другое.
Matthew Warner • Время на чтение: 3 минуты
Получайте еженедельную рассылку с последними новостями о разработке для Android.