Мы рады сообщить, что Jetpack WindowManager 1.5.0 теперь стабилен.
В этой версии мы улучшили адаптивность WindowManager, чтобы вам было ещё проще создавать качественные адаптивные интерфейсы, которые отлично выглядят на экранах любого размера. Экосистема Android продолжает расти, и пользователи работают с приложениями на самых разных устройствах: от телефонов и складных устройств до планшетов, подключенных дисплеев, Chromebook и даже автомобильных дисплеев в режиме парковки.
В WindowManager 1.5 мы добавили инструменты, которые помогут вам работать с устройствами разных типов.
Что нового в WindowManager 1.5
В стабильной версии добавлены новые точки останова для очень больших экранов, улучшен API встраивания действий и расширены возможности расчета показателей окон.
Новые классы размеров окон: "Большой" и "Очень большой"
Самое важное изменение в версии 1.5 – добавление двух новых классов размера окна по ширине: "Большой" и "Очень большой".
Классы размеров окон – это официальный набор точек останова области просмотра, который помогает создавать адаптивные макеты. В версии 1.5 мы расширили эти рекомендации, чтобы они охватывали экраны, которые больше, чем у обычных планшетов.
Новые точки останова по ширине:
- Большой – для ширины от 1200 до 1600 dp.
- Очень большой – для экранов шириной не менее 1600 dp.
Разные классы размеров окон в зависимости от ширины экрана.
Почему это важно?
Начиная с бета-версии 2 Android 16 QPR1, 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 помогает создавать адаптивные интерфейсы, которые автоматически подстраиваются под текущую конфигурацию окна, например под классы размеров окон или ориентацию устройства.
Хорошая новость: библиотека уже обновлена с учетом новых точек останова. Начиная с версии 1.2 (сейчас это версия-кандидат), директивы каркаса панели по умолчанию поддерживают классы ширины окна "Большой" и "Очень большой".
Чтобы включить новые точки останова, добавьте в файл сборки Gradle следующую строку:
currentWindowAdaptiveInfo( supportLargeAndXLargeWidth = true)
Дополнительные улучшения
- Встраивание действий – автоматическое сохранение и восстановление. Теперь WindowManager может автоматически сохранять и восстанавливать состояние разделов, в которые встроены действия. Это позволяет сохранить макет при воссоздании процесса, что делает работу с приложением более стабильной и удобной. Разработчикам больше не нужно сохранять и восстанавливать состояние вручную. Они могут просто включить автоматическое сохранение, задав значение true для свойства EmbeddingConfiguration#isAutoSaveEmbeddingState.
- Расширенные WindowMetrics. Теперь вы можете рассчитывать WindowMetrics на основе контекста приложения, а не только контекста действия. Это позволяет более гибко получать информацию о окнах из разных частей приложения.
С чего начать
Чтобы начать использовать новые классы размеров 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. Это важный шаг на пути к объединению мобильных и компьютерных технологий.
Francesco Romano • Время на чтение: 7 минут -
Новости продуктовУ разработчиков Android есть множество вариантов выбора агентов, больших языковых моделей (LLM), инструментов и интерфейсов командной строки (CLI), которые можно использовать для разработки приложений. Наша цель – помочь вам создавать красивые и качественные приложения для Android, независимо от того, как вы это делаете.
Simona Milanovic • Время на чтение: 4 минуты -
Новости продуктовМы постоянно расширяем возможности платформы подписок в Google Play, чтобы помочь вам развивать бизнес, адаптироваться к новым бизнес-моделям и привлекать пользователей.
Sheenam Mittal • Время на чтение: 4 минуты
Получайте свежие новости о разработке приложений для Android на свою электронную почту каждую неделю.