Менеджер окон
Последнее обновление | Стабильный релиз | Кандидат на релиз | Бета-версия | Альфа-релиз |
---|---|---|---|---|
30 июля 2025 г. | 1.4.0 | - | 1.5.0-бета02 | - |
Объявление зависимостей
Чтобы добавить зависимость от WindowManager, необходимо добавить репозиторий Google Maven в свой проект. Подробнее см. в репозитории Google Maven .
Добавьте зависимости для необходимых артефактов в файл build.gradle
вашего приложения или модуля:
Круто
dependencies { implementation "androidx.window:window:1.4.0" // For Java-friendly APIs to register and unregister callbacks implementation "androidx.window:window-java:1.4.0" // For RxJava2 integration implementation "androidx.window:window-rxjava2:1.4.0" // For RxJava3 integration implementation "androidx.window:window-rxjava3:1.4.0" // For testing implementation "androidx.window:window-testing:1.4.0" }
Котлин
dependencies { implementation("androidx.window:window:1.4.0") // For Java-friendly APIs to register and unregister callbacks implementation("androidx.window:window-java:1.4.0") // For RxJava2 integration implementation("androidx.window:window-rxjava2:1.4.0") // For RxJava3 integration implementation("androidx.window:window-rxjava3:1.4.0") // For testing implementation("androidx.window:window-testing:1.4.0") }
Обратная связь
Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с уже существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав на кнопку со звёздочкой.
Более подробную информацию см. в документации по системе отслеживания проблем .
Версия 1.5
Версия 1.5.0-beta02
30 июля 2025 г.
Выпущен androidx.window:window-*:1.5.0-beta02
. Версия 1.5.0-beta02 содержит следующие коммиты .
Внешний вклад
- Добавить все платформы KMP в
window-core
( If3d7c )
Версия 1.5.0-beta01
2 июля 2025 г.
Выпущен androidx.window:window-*:1.5.0-beta01
. Версия 1.5.0-beta01 содержит следующие коммиты .
Версия 1.5.0-альфа02
7 мая 2025 г.
Выпущен androidx.window:window-*:1.5.0-alpha02
. Версия 1.5.0-alpha02 содержит следующие коммиты .
Изменения API
- Добавьте точки останова
WindowSizeClass
для Large и XLarge. ( I40d85 ) - Расширить расчет
WindowMetrics
до контекста приложения. ( I8eeeb , b/360934048 ) - Предоставляет Getter для обеспечения прямого доступа к
WindowLayoutInfo
( Ie9513 ) - Внедрить API для автоматического сохранения состояния внедрения и автоматического восстановления состояния внедрения при перезапуске процесса приложения. ( Ie0295 )
- Удалить экспериментальный API
WindowInsets
. ( I68a71 ) - Скрыть несколько конструкторов ( I87b8d )
Исправления ошибок
- Исправлена ошибка, из-за которой
EmbeddingRule
возвращал разныйhashCode
в некоторых случаях. ( I748cc )
Версия 1.5.0-альфа01
12 марта 2025 г.
Выпущен androidx.window:window-*:1.5.0-alpha01
. Версия 1.5.0-alpha01 содержит следующие коммиты .
Новые функции
- Первоначальный выпуск следующей версии 1.5.0.
Версия 1.4
Версия 1.4.0
20 мая 2025 г.
Выпущен androidx.window:window-*:1.4.0
. Версия 1.4.0 содержит следующие коммиты .
Важные изменения с версии 1.3.0
- Встраивание активности
- API для настройки анимации запуска
- Интерактивный разделитель
- Закрепление
ActivityStack
- Затемнение полноэкранного диалога
- Встроенная функция обратного вызова информации об окне активности
- Улучшенное управление
ActivityStack
- Запустить Activity в указанном
ActivityStack
-
WindowMetricsCalculator
- Улучшение поддержки тестируемости
-
WindowMetrics
- Удобные методы расчета
withDp
иheightDp
- Обновить проверку границ до
isAtLeast
и использовать нижние границы для поддержки добавления новых значений.
- Удобные методы расчета
-
WindowSizeClass
- Добавить способ расчета из
WindowMetrics
- Добавить способ расчета из
-
WindowInfoTracker
- Добавить API для определения поддерживаемых поз на устройстве.
Версия 1.4.0-rc02
23 апреля 2025 г.
Выпущен androidx.window:window-*:1.4.0-rc02
. Версия 1.4.0-rc02 содержит следующие коммиты .
Исправления ошибок
- Исправлен сбой Proguard для
ActivityEmbedding
.
Версия 1.4.0-rc01
12 марта 2025 г.
Выпущен androidx.window:window-*:1.4.0-rc01
. Версия 1.4.0-rc01 содержит следующие коммиты .
Новые функции
- Обновления API
WindowSizeClass
. - Обновления API внедрения активности.
Версия 1.4.0-beta02
12 февраля 2025 г.
Выпущен androidx.window:window-*:1.4.0-beta02
. Версия 1.4.0-beta02 содержит следующие коммиты .
Новые функции
- Исправьте аннотацию, которая была только у свойства, но не у геттера.
Версия 1.4.0-beta01
15 января 2025 г.
Выпущен androidx.window:window-*:1.4.0-beta01
. Версия 1.4.0-beta01 содержит следующие коммиты .
Новые функции
- Добавить API, позволяющий настраивать анимацию
ActivityEmbedding
. - Расширить тестовые API
WindowMetricsCalculator
, чтобы разрешить подделку метрик окна.
Изменения API
- Скрыть несколько конструкторов ( I87b8d )
- Разрешить приложениям настраивать анимацию
ActivityEmbedding
( If31a8 ) - Добавляет поддержку
watchosDeviceArm64
KMP target и kotlin 1.9 ( Icf15d , b/364652024 ) - Предоставьте API
WindowMetricsCalculator
. ( I1cebf )
Исправления ошибок
- Эта библиотека теперь использует аннотации JSpecify, определяющие значение null , которые являются типовыми. Разработчикам Kotlin следует использовать следующий аргумент компилятора для обеспечения корректного использования:
-Xjspecify-annotations=strict
(это значение по умолчанию, начиная с версии 2.1.0 компилятора Kotlin). ( Ie69ac , b/326456246 )
Версия 1.4.0-альфа05
16 октября 2024 г.
Выпущен androidx.window:window-*:1.4.0-alpha05
. Версия 1.4.0-alpha05 содержит следующие коммиты .
Новые функции
- Добавьте удобные функции для получения
widthDp
иheightDp
изWindowMetrics
.
Изменения API
- Добавьте
widthDp
иheightDp
вWindowMetrics
. ( Ide026 ) - Удалить экспериментальный API
WindowInsets
. ( I68a71 ) - Обновить имена методов проверки границ на
isAtLeast
( Ib0ab7 )
Версия 1.4.0-альфа04
2 октября 2024 г.
Выпущен androidx.window:window-*:1.4.0-alpha04
. Версия 1.4.0-alpha04 содержит следующие коммиты .
Изменения API
- Добавлен метод вычисления
WindowSizeClass
изWindowMetrics
. ( 874dba ) - Для ясности измените методы
WindowSizeClass
наcontainsWidthDp
,containsHeightDp
иcontainsWindowSizeDp
. ( fa760d ) - Преобразовать
WindowAreaController
в абстрактный базовый класс. ( I90893 )
Исправления ошибок
- Добавить поддержку относительных границ при создании тестового
FoldingFeature
. ( 2e6b3e ) - Исправлены общие ошибки при выборе
WindowSizeClass
.
Версия 1.4.0-альфа03
18 сентября 2024 г.
Выпущен androidx.window:window-*:1.4.0-alpha03
. Версия 1.4.0-alpha03 содержит следующие коммиты .
Новые функции
- Добавьте вспомогательный метод для получения
WindowSizeClass
изWindowMetrics
. ( I83f1f ) - Переименуйте
isAtLeast
вcontainsBreakpoint
. ( I85b47 ) - Добавить перегрузку
computeWindowSizeClass
с использованием чисел с плавающей точкой. ( I3dcb2 , b/364677934 , b/364677802 , b/364680886 )
Исправления ошибок
- Добавить отсутствующие точки останова в набор точек останова
WindowSizeClass
по умолчанию. - Исправлена ошибка, из-за которой в некоторых случаях компактные размеры выбирались неправильно.
Версия 1.4.0-альфа02
4 сентября 2024 г.
Выпущен androidx.window:window-*:1.4.0-alpha02
. Версия 1.4.0-alpha02 содержит следующие коммиты .
Новые функции
Добавить поддержку пользовательского WindowSizeClass
.
- Откройте конструктор для
WindowSizeClass
, чтобы разработчики могли использовать свой собственный. - Добавьте служебные методы
isAtLeast
, чтобы разработчики могли обрабатывать диапазон значенийWindowSizeClass
. - Добавьте функцию расширения в
Set<WindowSizeClass>
для вычисления наилучшего соответствия из Set. - Добавьте константы для рекомендуемых точек останова Android.
- Добавьте набор точек останова, соответствующий рекомендуемым точкам останова Android.
Изменения API
- Обновите имена методов границ для
WindowSizeClass
. ( If89a6 ) - Обновите API
WindowSizeClass
для поддержки добавления новых значений точек останова в будущем. Вместо абсолютных границ мы используем нижние границы и рекомендуем разработчикам проверять нижние границы при обработкеWindowSizeClass
. СуществующиеWindowWidthSizeClass
иWindowHeightSizeClass
будут объявлены устаревшими, поскольку не будут получать дальнейшего развития. ( I014ce )
Версия 1.4.0-альфа01
7 августа 2024 г.
Выпущен androidx.window:window-*:1.4.0-alpha01
. Версия 1.4.0-alpha01 содержит следующие коммиты .
Новые функции
- Функция ActivityStack Pinning позволяет приложениям закреплять контент в одном контейнере и изолировать его навигацию от другого контейнера.
- Интерактивный разделитель позволяет приложениям отображать фиксированный или перетаскиваемый разделитель между двумя действиями в разделенной презентации.
- Функция затемнения диалоговых окон на весь экран позволяет приложениям указывать область затемнения диалоговых окон, чтобы затемнить либо все окно задачи, либо только контейнер, в котором отображается диалоговое окно.
- Функция обратного вызова встроенного окна активности позволяет приложениям постоянно получать обновления встроенного окна активности.
- Встраивание анимационного фона позволяет приложениям указывать анимационный фон, улучшая качество анимации перехода при использовании
ActivityEmbedding
. - Улучшенное управление ActivityStack позволяет приложениям иметь больше контроля над
ActivityStacks
при использованииActivityEmbedding
, включая: - Запуск активности в указанном
ActivityStack
- Завершение
ActivityStack
Изменения API
Новый API
WindowInfoTracker#supportedPostures
:- API для определения, поддерживает ли устройство режим TableTop для складных экранов. Добавляет WindowAreaSessionPresenter#getWindow.
Добавьте API для поддержки закрепления
ActivityStack
:- Класс
SplitPinRule
-
SplitController#pinTopActivityStack
-
SplitController#unpinTopActivityStack
- Класс
Добавьте API для включения и настройки интерактивного разделителя.
- Класс
DividerAttributes
-
SplitAttributes.Builder#setDividerAttributes
- Класс
Добавить API для настройки
EmbeddingConfiguration
иDimAreaBehavior
для диалоговых окон.- Класс
EmbeddingConfiguration
- Класс
DimAreaBehavior
-
ActivityEmbeddingController#setEmbeddingConfiguration
- Класс
Добавьте API для получения обновлений информации об окнах встроенной активности.
- Класс
EmbeddedActivityWindowInfo
-
ActivityEmbeddingController#embeddedActivityWindowInfo
- Класс
Добавить API для установки встроенного фона анимации
-
EmbeddingAnimationBackground
-
SplitAttributes.Builder#setAnimationBackground
-
Добавьте API для завершения
ActivityStacks
-
ActivityEmbeddingController#finishActivityStacks
-
Добавить API для настройки запуска
ActivityStack
-
ActivityEmbeddingOptions#setLaunchingActivityStack
-
Следующие API стабильны и больше не являются экспериментальными:
-
ActivityEmbeddingController#invalidateVisibleActivityStacks
(перенесено из SplitController#invalidateTopVisibleSplitAttributes) -
ActivityEmbeddingController#getActivityStack
-
SplitController#updateSplitAttributes
-
Добавить API для версии 1.4. ( I56774 )
Исправления ошибок
- Исправлена ошибка на некоторых устройствах, из-за которой возвращалось значение UNAVAILABLE вместо ACTIVE, когда сеанс активен.
- Удаляет поддержку
transferActivityToWindowArea
на устройствах сvendorApiLevel
2 из-за нестабильной поддержки API. - Представить API, позволяющий перетаскивать разделитель Activity Embedding на весь экран. ( I645c9 )
- Разрешить приложениям отключать анимацию
ActivityEmbedding
с помощью параметров анимации дляSplitAttributes
. ( Idc01a ) - Удалено ручное описание доступа к новым API платформы, поскольку это происходит автоматически посредством моделирования API при использовании R8 с AGP 7.3 или более поздней версии (например, R8 версии 3.3) и для всех сборок с использованием AGP 8.1 или более поздней версии (например, D8 версии 8.1). Клиентам, не использующим AGP, рекомендуется обновиться до D8 версии 8.1 или более поздней. Подробнее см. в этой статье . ( Ia60e0 , b/345472586 )
- Разрешить расширениям принимать параметры анимации для
SplitAttributes
, чтобы устройство могло использовать их для анимационных переходов. ( Iede00 ) - Скрыть API наложений ( Ic4251 )
- Ввести API для настройки фиксированного или перетаскиваемого разделителя для разделения ( Ia7a78 )
- Добавлена плотность в
WindowMetrics
( Id6723 ) - Добавить API для получения
SupportedPostures
. ( If557a ) - Удалить
setLaunchingActivityStack
из экспериментального API ( I191cf ) - Представляем
ActivityEmbeddingController#embeddedActivityWindowInfo
( I24312 ) - Отменить
#getToken
и добавить#getActivityStackToken
( Ie0471 ) - Введен адаптер обратного вызова для API потока
embeddedActivityWindowInfo
( Ida77f ) - Добавить адаптер обратного вызова для API потока overlayInfo ( I7264f )
- Ввести правило
WindowSdkExtensionsRule
для переопределенияextensionsVersion
для тестирования. ( Ifb928 ) - - Перенесите
#setLaunchingActivityStack
в Bundle для совместимости с использованиемActivityOptionsCompat
.- Пользователи должны передавать
activityOptions.toBundle
вместо самогоActvityOptions
. - Удалите
#setLaunchingActivityStack(Activity)
. Пользователям следует перейти на использованиеActivityEmbeddingController#getActivityStac(Activity)
для полученияActivityStack
и передаватьActivityStack
в#setLaunchingActivityStack
. ( Ie0ccc )
- Пользователи должны передавать
- - Ввести
ActivityStack.Token
иSpltInfo.Token
в качестве идентификатора для связи между WM Jetpack и расширениями.- Устаревать/заменить API для получения/возврата токена вместо IBinder. ( I12b24 )
- - Представляем
ActivityEmbeddingController#invalidateVisibleActivityStacks
- Удалите
SplitController#invalidateTopVisibleSplitAttributes
, поскольку эта функция консолидирована в#invalidateVisibleActivityStacks
( I02ef5 ).
- Удалите
- - Добавление API для настройки конфигурации встраивания. ( I59a4a )
- - Добавление API
androidx.Window
для закрепления/открепления верхнегоActivityStack
- Обновление демонстрационного приложения для возможности закрепления/открепления верхнего
ActivityStack
( I24dd3 )
- Обновление демонстрационного приложения для возможности закрепления/открепления верхнего
- Повторно добавьте
#finishActivityStacks
иActivityEmbeddingOptions
( Ic1ab3 ) - Удалить нестабильные API. ( Ibc534 , b/302380585 )
Версия 1.3
Версия 1.3.0
29 мая 2024 г.
Выпущен androidx.window:window-*:1.3.0
. Версия 1.3.0 содержит следующие коммиты .
Важные изменения с версии 1.2.0
- Поддержка Kotlin Multiplatform для классов размеров окон.
Версия 1.3.0-rc01
14 мая 2024 г.
WindowManager
Jetpack 1.3 обеспечивает поддержку Kotlin Multiplatform для функций WindowSizeClass
, а также исправляет множество ошибок.
Выпущен androidx.window:window-*:1.3.0-rc01
. Версия 1.3.0-rc01 содержит следующие коммиты .
Версия 1.3.0-beta02
1 мая 2024 г.
Выпущен androidx.window:window-*:1.3.0-beta02
. Версия 1.3.0-beta02 содержит следующие коммиты .
Изменения API
- Удалить поддержку создания и использования пользовательских
WindowSizeClass
. ( Id1143 )
Исправления ошибок
- Исправлена ошибка
KotlinReflectionInternalError
, вызванная удалением Proguard некоторых файлов на определенных реализациях устройств. ( I01b02 )
Версия 1.3.0-beta01
3 апреля 2024 г.
Выпущен androidx.window:window-*:1.3.0-beta01
. Версия 1.3.0-beta01 содержит следующие коммиты .
Версия 1.3.0-альфа03
6 марта 2024 г.
Выпущен androidx.window:window-*:1.3.0-alpha03
. Версия 1.3.0-alpha03 содержит следующие коммиты .
Изменения API
- Разделить
WindowSizeClassUtil
на более специализированные методы. ( Ie9292 ) - Восстановить
WindowSizeClass#compute
( I21355 , b/324293374 )
Исправления ошибок
- Исправлен сбой, из-за которого предоставленный контекст не разворачивался правильно. ( 94d10ce , b/318787482 )
Версия 1.3.0-альфа02
7 февраля 2024 г.
Выпущен androidx.window:window-*:1.3.0-alpha02
. Версия 1.3.0-alpha02 содержит следующие коммиты.
Новые функции
- В API класса размера окна внесены обновления с целью повышения гибкости для разработчиков, желающих использовать собственные классы размеров.
Изменения API
- Добавьте ограничения высоты к селектору ширины. ( I23393 )
- Добавить вспомогательные функции для выбора
WindowSizeClass
из набора. Добавить экспериментальные функции оценки, чтобы разработчики могли писать собственные селекторы. Добавить функцию расширения селектора для выбора самого широкогоWindowSizeClass
в заданном диапазоне. ( I0c944 ) - Откройте конструктор
WindowSizeClass
, чтобы можно было добавлять пользовательские точки останова. ( Ic1ff3 ) - Добавьте удобную функцию для создания класса размеров на основе ширины, высоты и плотности. ( If67f4 )
Исправления ошибок
- Исправлено исключение, когда значение с плавающей точкой обрезается до 0. ( 272ffac )
Версия 1.3.0-альфа01
15 ноября 2023 г.
Выпущен androidx.window:window-*:1.3.0-alpha01
. Версия 1.3.0-alpha01 содержит следующие коммиты.
Новые функции
- Предоставить экспериментальные оконные API для доступа к заднему экрану.
- Тестовые API для создания
FoldingFeature
теперь стабильны. - Тестовые API для настройки поддельных значений
ActivityEmbedding
теперь стабильны. -
WindowLayoutInfoPublisherRule
теперь сообщает о переопределении при получении значения изUiContext
. -
WindowInfoTracker
передает данные о складывающихся функциях в параметрыUiContext
. - Укажите версию расширений на устройстве.
- Константы
WindowProperties
для переопределения пользовательских свойств для каждого приложения:-
PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE
— информирует систему о том, что приложение отказалось от переопределения совместимости с соотношением сторон, видимым пользователю. -
PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE
— информирует систему о том, что приложение отказалось от опции полноэкранного режима в настройках переопределения совместимости с соотношением сторон пользователя.
-
Версия 1.2
Версия 1.2.0
15 ноября 2023 г.
Выпущен androidx.window:window-*:1.2.0
. Версия 1.2.0 содержит следующие коммиты.
Важные изменения с версии 1.1.0
- Предоставить экспериментальные оконные API для доступа к заднему экрану.
- Тестовые API для создания
FoldingFeature
теперь стабильны. - Тестовые API для настройки поддельных значений
ActivityEmbedding
теперь стабильны. -
WindowLayoutInfoPublisherRule
теперь сообщает о переопределении при получении значения изUiContext
. -
WindowInfoTracker
передает данные о складывающихся функциях в параметрыUiContext
. - Укажите версию расширений на устройстве.
Версия 1.2.0-rc01
1 ноября 2023 г.
Выпущен androidx.window:window-*:1.2.0-rc01
. Версия 1.2.0-rc01 содержит следующие коммиты.
Новые функции
- Предоставить экспериментальные оконные API для доступа к заднему экрану.
- Тестовые API для создания
FoldingFeature
теперь стабильны. - Тестовые API для настройки поддельных значений
ActivityEmbedding
теперь стабильны. -
WindowLayoutInfoPublisherRule
теперь сообщает о переопределении при получении значения изUiContext
. -
WindowInfoTracker
передает данные о складывающихся функциях в параметрыUiContext
. - Укажите версию расширений на устройстве.
Версия 1.2.0-beta04
18 октября 2023 г.
Выпущен androidx.window:window-*:1.2.0-beta04
. Версия 1.2.0-beta04 содержит следующие коммиты.
Изменения API
- Удалить нестабильные API. ( Ibc534 , b/302380585 )
Версия 1.2.0-beta03
20 сентября 2023 г.
Выпущен androidx.window:window-*:1.2.0-beta03
. Версия 1.2.0-beta03 содержит следующие коммиты.
Новые функции
- Добавьте проверки
RequiresApi
для API, которым для корректной работы требуется определенная версия расширений. - Добавьте API для отображения версии расширений на устройстве.
Изменения API
- Укажите требуемую версию расширения SDK окна в общедоступных API.
- Удалить
isXXXSupported
в компоненте Activity Embedding. ( Ie3dae )
- Удалить
- Введите
WindowSdkExtensions
для сообщения версии расширения на устройстве.- Введен
RequiresWindowSdkExtension
для аннотирования минимально необходимой версии расширения. ( I05fd4 )
- Введен
- Делает
WindowAreaInfo#getCapability
не допускающим значение NULL. ( I17048 )
Версия 1.2.0-beta01
26 июля 2023 г.
Выпущен androidx.window:window-*:1.2.0-beta01
. Версия 1.2.0-beta01 содержит следующие коммиты.
Новые функции
- Предоставить экспериментальные оконные API для доступа к заднему экрану.
- Тестовые API для создания
FoldingFeature
теперь стабильны. - Тестовые API для настройки поддельных значений
ActivityEmbedding
теперь стабильны. -
WindowLayoutInfoPublisherRule
теперь сообщает о переопределении при получении значения изUiContext
. -
WindowInfoTracker
передает данные о складывающихся функциях в параметрыUiContext
.
Изменения API
- Отмечает API
WindowArea
как экспериментальный, чтобы разрешить внесение изменений в API для стабильной версии 1.3 ( I857f5 ) - Обновлены файлы API для аннотирования подавления совместимости ( I8e87a , b/287516207 )
Версия 1.2.0-альфа03
21 июня 2023 г.
Выпущен androidx.window:window-*:1.2.0-alpha03
. Версия 1.2.0-alpha03 содержит следующие коммиты.
Новые функции
- Удаление устаревших API с поверхности API.
- Добавьте API для поддержки одновременных отображений.
- Добавьте свойство, чтобы отказаться от принудительного изменения размера.
- Добавьте свойство, чтобы отказаться от переопределения минимального соотношения сторон.
- Стабилизируйте
ActivityEmbeddingRule
для поддержки модульного тестирования при внедрении Activity.
Изменения API
Исправления ошибок
- Добавление свойства совместимости с опцией отключения для принудительного изменения размера ( Ie7ab1 )
- Удаляет
SESSION_STATE_CONTENT_INVISIBLE
из интерфейса расширений. ( I6ed19 ) - Стабилизируйте
ActivityEmbeddingRule
для поддержки модульного тестирования при внедрении Activity. ( I8d6b6 ) - Добавлено свойство отказа от совместимости для переопределения минимального соотношения сторон. ( I66390 )
- Удаляет устаревшие API WindowArea ( Ieb67c )
- Переименуйте свойство цикла запроса ориентации в
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED
. ( Ie2fbd ) - Обновляет имена констант сеанса области окна ( I83675 )
- Добавлено свойство совместимости, которое игнорирует цикл запроса ориентации при обнаружении ( I0a7a2 ).
- Добавьте
WindowAreaComponent#STATUS_ACTIVE
чтобы обозначить, что функция уже активна. ( I62bc3 ) - Добавить API
RearDisplayPresentationMode
( I0401c ) - Удалить API фонового цвета для стабильной версии. ( I34c3e )
- API скрытия области окна. ( I39de0 )
- Добавьте методы для переопределения
SplitInfo
вSplitController
. Добавьте тестовые методы для создания двойного значения дляSplitInfo
иActivityStack
. ( ICD69F ) - Сделайте тег необязательным для
ActivityRule.Builder
. ( Ib0b44 ) - Удалите
RatioSplitType
,ExpandContainersSplit
иHingeSplitType
. Теперь они —SplitType
.- Заменить
#splitEqually()
,#expandContainers()
и#splitByHinge
на константыSplitType SPLIT_TYPE_EQUAL
,SPLIT_TYPE_EXPAND
иSPLIT_TYPE_HINGE
- Удалена возможность установки резервного типа разделения для типа разделения «петля». Если тип разделения «петля» не может быть применен из-за текущего состояния устройства или окна, выполняется резервное разделение родительского контейнера задач поровну. Используйте
SplitController#setSplitAttributesCalculator
для настройки резервного типа разделения. ( Ifcc59 )
- Заменить
- Отменить поддержку
add
/removeSplitCallback
- Переместить
add
/removeSplitCallback
вSplitControllerCallbackAdapter
- Добавить поддержку
Flow
для получения спискаSplitInfo
( I7f1b6 )
- Переместить
- Добавьте тестовое правило для
ActivityEmbeddingController
( I42e9b ) - Переименование
ActivityOptionsCompat
вActivityEmbeddingOptions
( I89301 ) - Добавьте
splitSupportStatus
, чтобы указать, доступно ли встраивание Activity. ( I10024 ) - Добавлено свойство
SplitAttributes.BackgroundColor
для более точного представления значенияDEFAULT
. Уточнено, что непрозрачный цвет фона анимации не поддерживается, поэтому любые непрозрачные цвета будут рассматриваться как цвета по умолчанию, то есть будут использоваться цвет фона окна текущей темы. ( Ic6b95 ) - Замените
alwaysAllow()
иalwaysDisallow()
наALWAYS_ALLOW
иALWAYS_DISALLOW
. ( I3057b ) - Добавить API для
SplitRule
,SplitAttributes
,SplitAttributesCalculator
. ( I92d23 ) - Добавьте
TestActivityStack
, чтобы создатьActivityStack
для тестирования.- Добавьте
TestSplitInfo
, чтобы создатьSplitInfo
для тестирования. ( I8e779 )
- Добавьте
- Добавьте способ создания поддельных
SplitAttributesCalculatorParams
, чтобы разработчики могли проверить свои настроенныеSplitAttributesCalculator
( Id4a6e ). - Добавьте
WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context)
иWindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context)
( I66c7f )
Версия 1.2.0-альфа02
7 июня 2023 г.
Выпущен androidx.window:window-*:1.2.0-alpha02
. Версия 1.2.0-alpha02 содержит следующие коммиты.
Новые функции
- Обновить тестовый API, чтобы иметь константу для неуказанных признаков складывания.
- Переопределение с помощью
WindowLayoutInfoPublishRule
переопределит все значенияwindowLayoutInfo
, включая API на основе контекста.
Изменения API
- Добавить константу для неуказанного свойства центральной складки. ( I7530c )
Исправления ошибок
- Обновите
WindowLayoutInfoPublishRule
для поддержки переопределений на основеContext
WindowLayoutInfo
. ( I2037a )
Версия 1.2.0-альфа01
24 мая 2023 г.
Выпущен androidx.window:window-*:1.2.0-alpha01
. Версия 1.2.0-alpha01 содержит следующие коммиты.
Новые функции
Стабилизированы тестовые API для Activity Embedding и WindowLayoutInfoTracker
. ActivityEmbeddingRule
переведен на стабильный уровень. WindowMetricsCalculatorRule
переведен на стабильный уровень. Вспомогательные функции для создания FoldingFeature
для тестирования переведены на стабильный уровень.
Изменения API
- Стабилизируйте
ActivityEmbeddingRule
для поддержки модульного тестирования при внедрении Activity. ( I8d6b6 ) -
WindowMetrisCalculatorTestRule
стабилен и позволяет использовать заглушки метрик для тестов JVM. Для получения точных результатов рекомендуем использовать эмулятор. - Стабилизировать тестовые API для
WindowLayoutInfo
для поддержки тестирования JVM. ( Ie036e ) - Добавьте
IntRange
для проверки значений признаков свертывания. ( I69f7d )
Версия 1.1
Версия 1.1.0
7 июня 2023 г.
Выпущен androidx.window:window-*:1.1.0
. Версия 1.1.0 содержит следующие коммиты.
Важные изменения с версии 1.0.0
Встраивание активности
- Добавлено
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
как логическое свойство тега<application>
в манифесте приложения. - Устарело
isSplitSupported
и заменено наsplitSupportStatus
для предоставления более подробной информации о том, почему функция разделения недоступна. - Добавлен вложенный класс
SplitController.SplitSupportStatus
для предоставления констант состояния для свойстваsplitSupportStatus
. - Реорганизовал
SplitController
на несколько модулей:- Модуль
ActivityEmbeddingController
для API, связанных сActivity
илиActivityStack
. -
isActivityEmbedded
перемещен изSplitController
вActivityEmbeddingController
. - Модуль
RuleController
для операций, связанных сEmbeddingRule
: - Удалены API
SplitController
: -
clearRegisteredRules()
-
getSplitRules()
-
initialize()
-
registerRule()
-
unregisterRule()
- Добавлены API-интерфейсы
RuleController
: -
addRule()
— добавляет правило или обновляет правило с тем же тегом. -
removeRule()
— удаляет правило из коллекции зарегистрированных правил. -
setRules()
— Устанавливает набор правил. -
clearRules()
— Удаляет все зарегистрированные правила. -
parseRules()
— Анализирует правила из определений правил XML.
- Модуль
- Все модули требуют инициализации контекста методом
#getInstance()
, включая:-
ActivityEmbeddingController#getInstance(Context)
-
SplitController#getInstance(Context)
-
RuleController#getInstance(Context)
-
- Добавлен класс
EmbeddingAspectRatio
для определения констант поведения типа enum, связанных с соотношением сторон дисплея. - Добавлен класс
SplitAttributes
для определения разделенного макета. - Добавлены функции калькулятора
SplitAttributes
вSplitController
для настройки разделенных макетов:-
setSplitAttributesCalculator(Function)
-
clearSplitAttributesCalculator()
-
isSplitAttributesCalculatorSupported()
для проверки того, поддерживаются ли APISplitAttributesCalculator
на устройстве
-
- Добавлено поле
EmbeddingRule#tag
. - Обновления API в
SplitRule
:- Добавлен
defaultSplitAttributes
— определяет макет разделения по умолчанию; заменяетsplitRatio
иlayoutDirection
. - Добавлен перевод свойств XML
splitRatio
иsplitLayoutDirection
вdefaultSplitAttributes
. - Изменены определения минимального размера для использования пикселей, не зависящих от плотности (dp), вместо пикселей.
- Добавлен
minHeightDp
со значением по умолчанию 600dp. - Изменено
minWidth
наminWidthDp
со значением по умолчанию 600dp. - Изменено
minSmallestWidth
наminSmallestWidthDp
со значением по умолчанию 600dp. - Добавлен
maxAspectRatioInHorizontal
со значением по умолчаниюALWAYS_ALLOW
. - Добавлен
maxAspectRatioInPortrait
со значением по умолчанию 1.4. - Определен вложенный класс
FinishBehavior
для замены констант поведения финиша. - Применил изменения свойств к вложенному классу Builder
SplitPairRule
иSplitPlaceholderRule
.
- Добавлен
- Заменен
SplitInfo#getSplitRatio()
наSplitInfo#getSplitAttributes()
для предоставления дополнительной информации, связанной с разделением.
WindowLayout
- Добавлена экспериментальная поддержка неактивного контекста пользовательского интерфейса в
WindowInfoTracker
. - Добавлен экспериментальный контекст пользовательского интерфейса без активности в
WindowMetricsCalculator
.
Этапы миграции
- Чтобы включить внедрение активности для отображения активности в разделениях, приложения должны добавить свойство
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
в тег манифеста<application>
:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
Это позволяет системе заранее оптимизировать поведение разделения для приложения. - Коэффициент
SplitInfo
- Проверьте, является ли текущее разделение стековым:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- Проверьте текущее соотношение:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- Проверьте, является ли текущее разделение стековым:
- Миграции SplitController:
-
SplitController.getInstance()
изменяется наSplitController.getInstance(Context)
. -
SplitController.initialize(Context, @ResId int)
изменяется наRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
. -
SplitController.getInstance().isActivityEmbedded(Activity)
изменяется наActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
. -
SplitController.getInstance().registerRule(rule)
изменяется наRuleController.getInstance(Context).addRule(rule)
. -
SplitController.getInstance().unregisterRule(rule)
изменяется наRuleController.getInstance(Context).removeRule(rule)
. -
SplitController.getInstance().clearRegisteredRules()
изменяется наRuleController.getInstance(Context).clearRules()
. -
SplitController.getInstance().getSplitRules()
изменяется наRuleController.getInstance(Context).getRules()
.
-
- Миграции свойств
SplitRule
:-
minWidth
иminSmallestWidth
теперь используют единицы измерения dp вместо пикселей. Приложения могут использовать следующий вызов:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
или просто разделитьminWith
в пикселях наdisplayMetrics#density
.
-
- Константы поведения Finish необходимо перенести в константы класса, подобные перечислению
FinishBehavior
:-
FINISH_NEVER
изменяется наFinishBehavior.NEVER
. -
FINISH_ALWAYS
изменяется наFinishBehavior.ALWAYS
. -
FINISH_ADJACENT
изменяется наFinishBehavior.ADJACENT
.
-
- Направление макета необходимо перенести в
SplitAttributes.LayoutDirection
:-
ltr
изменяется наSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
. -
rtl
изменяется наSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
. -
locale
изменяется наSplitAttributes.LayoutDirection.LOCALE
. -
splitRatio
необходимо перенести вSplitAttributes.SplitType.ratio(splitRatio)
.
-
- Миграции
SplitPairRule.Builder
:-
SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
изменяется наkotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
-
setLayoutDirection(layoutDirection)
иsetSplitRatio(ratio)
изменяются наkotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
-
setFinishPrimaryWithSecondary
иsetFinishSecondaryWithPrimary
принимают константы, подобные перечислениюFinishBehavior
. Подробнее см. в разделе «Миграции SplitRule». - Используйте
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
для отображения разделителей на устройствах с портретной ориентацией.
-
- Миграции
SplitPlaceholder.Builder
:- Содержит только параметры
filters
иplaceholderIntent
. Остальные свойства переносятся в сеттеры. Подробнее см. в разделе «Миграции SplitPairRule.Builder». -
setFinishPrimaryWithPlaceholder
принимает константы, подобные перечислениюFinishBehavior
. Подробнее см. в разделе «Миграции SplitRule». -
setLayoutDirection(layoutDirection)
иsetSplitRatio(ratio)
изменяются на:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- Используйте
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
для отображения разделителей на устройствах с портретной ориентацией.
- Содержит только параметры
Версия 1.1.0-rc01
10 мая 2023 г.
Выпущен androidx.window:window-*:1.1.0-rc01
. Версия 1.1.0-rc01 содержит следующие коммиты.
Новые функции
- Выпуск
ActivityEmbedding
как стабильного API. - Исправлены различные ошибки.
Версия 1.1.0-beta02
5 апреля 2023 г.
Выпущен androidx.window:window-*:1.1.0-beta02
. Версия 1.1.0-beta02 содержит следующие коммиты.
Новые функции
- Внутренние исправления и уборка.
Версия 1.1.0-beta01
22 марта 2023 г.
Выпущен androidx.window:window-*:1.1.0-beta01
. Версия 1.1.0-beta01 содержит следующие коммиты.
Встраивание активности
- Добавлено
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
как логическое свойство тега<application>
в манифесте приложения. - Устарело
isSplitSupported
и заменено наsplitSupportStatus
для предоставления более подробной информации о том, почему функция разделения недоступна. - Добавлен вложенный класс
SplitController.SplitSupportStatus
для предоставления констант состояния для свойстваsplitSupportStatus
. - Реорганизовал
SplitController
на несколько модулей:- Модуль
ActivityEmbeddingController
для API, связанных сActivity
илиActivityStack
. -
isActivityEmbedded
перемещен изSplitController
вActivityEmbeddingController
. - Модуль
RuleController
для операций, связанных сEmbeddingRule
: - Удалены API
SplitController
:-
clearRegisteredRules()
-
getSplitRules()
-
initialize()
-
registerRule()
-
unregisterRule()
-
- Добавлены API-интерфейсы
RuleController
:-
addRule()
— добавляет правило или обновляет правило с тем же тегом. -
removeRule()
— удаляет правило из коллекции зарегистрированных правил. -
setRules()
— Устанавливает набор правил. -
clearRules()
— Удаляет все зарегистрированные правила. - `parseRules() — Анализирует правила из определений правил XML.
-
- Модуль
- Все модули требуют инициализации контекста методом
#getInstance()
, включая:-
ActivityEmbeddingController#getInstance(Context)
-
SplitController#getInstance(Context)
-
RuleController#getInstance(Context)
-
- Добавлен класс
EmbeddingAspectRatio
для определения констант поведения типа enum, связанных с соотношением сторон дисплея. - Добавлен класс
SplitAttributes
для определения разделенного макета. - Добавлены функции калькулятора
SplitAttributes
вSplitController
для настройки разделенных макетов:-
setSplitAttributesCalculator(Function)
-
clearSplitAttributesCalculator()
-
isSplitAttributesCalculatorSupported()
для проверки того, поддерживаются ли API SplitAttributesCalculator на устройстве
-
- Добавлено поле
EmbeddingRule#tag
. - Обновления API в
SplitRule
:- Добавлен
defaultSplitAttributes
— определяет макет разделения по умолчанию; заменяетsplitRatio
иlayoutDirection
. - Добавлен перевод свойств XML
splitRatio
иsplitLayoutDirection
вdefaultSplitAttributes
. - Изменены определения минимального размера для использования пикселей, не зависящих от плотности (dp), вместо пикселей.
- Добавлен
minHeightDp
со значением по умолчанию 600dp. - Изменено
minWidth
наminWidthDp
со значением по умолчанию 600dp. - Изменено
minSmallestWidth
наminSmallestWidthDp
со значением по умолчанию 600dp. - Добавлен
maxAspectRatioInHorizontal
со значением по умолчаниюALWAYS_ALLOW
. - Добавлен
maxAspectRatioInPortrait
со значением по умолчанию1.4
. - Определен вложенный класс
FinishBehavior
для замены констант поведения финиша. - Применил изменения свойств к вложенному классу
Builder
SplitPairRule
иSplitPlaceholderRule
.
- Добавлен
- Заменен
SplitInfo#getSplitRatio()
наSplitInfo#getSplitAttributes()
для предоставления дополнительной информации, связанной с разделением.
WindowLayout
- Добавлена поддержка контекста пользовательского интерфейса без активности в
WindowInfoTracker
. - Добавлен контекст пользовательского интерфейса без активности в
WindowMetricsCalculator
.
Этапы миграции
- Чтобы включить внедрение активности для отображения активности в разделениях, приложения должны добавить свойство
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
в тег манифеста<application>
:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
Это позволяет системе заранее оптимизировать поведение разделения для приложения. - Коэффициент
SplitInfo
- Проверьте, является ли текущее разделение стековым:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- Проверьте текущее соотношение:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- Проверьте, является ли текущее разделение стековым:
- Миграции
SplitController
:-
SplitController.getInstance()
изменяется наSplitController.getInstance(Context)
. -
SplitController.initialize(Context, @ResId int)
изменяется наRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
. -
SplitController.getInstance().isActivityEmbedded(Activity)
изменяется наActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
. -
SplitController.getInstance().registerRule(rule)
изменяется наRuleController.getInstance(Context).addRule(rule)
. -
SplitController.getInstance().unregisterRule(rule)
изменяется вRuleController.getInstance(Context).removeRule(rule)
. -
SplitController.getInstance().clearRegisteredRules()
Изменения вRuleController.getInstance(Context).clearRules()
. -
SplitController.getInstance().getSplitRules()
изменения вRuleController.getInstance(Context).getRules()
.
-
- Миграция собственности
SplitRule
:-
minWidth
иminSmallestWidth
теперь используют единицы DP вместо пикселей. Приложения могут использовать следующий вызов:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
или просто разделитеminWith
в Pixels отdisplayMetrics#density
.
-
- Константы отделки поведения должны быть перенесены в отдел, как
FinishBehavior
константы классов:-
FINISH_NEVER
изменение вFinishBehavior.NEVER
. -
FINISH_ALWAYS
меняется наFinishBehavior.ALWAYS
. -
FINISH_ADJACENT
изменение вFinishBehavior.ADJACENT
.
-
- Направление макета должно быть перенесено на
SplitAttributes.LayoutDirection
.-
ltr
Изменения вSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
. -
rtl
изменяется наSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
. -
locale
изменений вSplitAttributes.LayoutDirection.LOCALE
. -
splitRatio
должен быть перенесен наSplitAttributes.SplitType.ratio(splitRatio)
.
-
-
SplitPairRule.Builder
Миграции:-
SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
Изменения вkotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
-
setLayoutDirection(layoutDirection)
и изменениеsetSplitRatio(ratio)
наkotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
-
setFinishPrimaryWithSecondary
иsetFinishSecondaryWithPrimary
принятьFinishBehavior
константы, похожие на перечисление. Смотрите «Миграции Splitrule» для получения подробной информации. - Используйте
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
, чтобы показать расколы на портретных устройствах.
-
-
SplitPlaceholder.Builder
Миграции:- Имеет только
filters
иplaceholderIntent
. Другие свойства перемещаются на сетеры. Для получения подробной информации см. -
setFinishPrimaryWithPlaceholder
беретFinishBehavior
константы, подобные перечислению, подобные Enum. Смотрите «Миграции Splitrule» для получения подробной информации. -
setLayoutDirection(layoutDirection)
иsetSplitRatio(ratio)
к:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- Используйте
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
, чтобы показать расколы на портретных устройствах.
- Имеет только
Версия 1.1.0-Alpha06
22 февраля 2023 г.
androidx.window:window-*:1.1.0-alpha06
выпускается. Версия 1.1.0-Alpha06 содержит эти коммиты.
Новые функции
- Разместите экспериментальную версию получения
WindowLayoutInfo
из контекста пользовательского интерфейса.
Изменения API
- Добавьте
splitSupportStatus
, чтобы указать, доступно ли встраивание активности. ( I10024 ) - Сделайте UI Context
WindowLayoutInfo
API как экспериментальный. ( I58ee0 ) - Представляет
WindowAreaController
и API, чтобы разрешить режимRearDisplay
перемещать текущее окно на дисплей, который выровнен с задней камерой. ( Iffcbf ) - Обновить цвет фона по умолчанию. ( I1ac1b )
- Добавить
SplitAttributes
Params. ( I18bdd ) - Добавьте API для
SplitRule
,SplitAttributes
,SplitAttributesCalculator
. ( I92d23 ) - Улучшить API вокруг
maxAspectRatio
:- Замените
alwaysAllow()
иALWAYS_ALLOW
alwaysDisallow()
наALWAYS_DISALLOW
. - Обновите документацию API @See с автономной документацией. ( I3057b )
- Замените
- Следующие конструкторы удаляются из публичных API, потому что они не должны вызывать приложениями.
-
SplitInfo
Constructor -
ActivityStack
Constructor ( IDE534 )
-
-
SplitRule
теперь принимаетmaxAspectRatioInPortrait/Landscape
. Это позволяет разделиться действия, только когда соотношение сторон родительских границ меньше или равно запрошенномуmaxAspectRatio
. ( IA5990 ) - Изменить
RuleController#parseRules
на статичные ( i785df ) - Улучшить API -интерфейсы вокруг ActivityBedding
- Выровняйте именование API - используйте добавить/удалить для нескольких экземпляров:
- Изменения
registerRule
вaddRule
-
unregisterRule
изменения вremoveRule
- Заменить
getSplitRules
наgetRules
, так какActivityRule
не является правилом разделения - Добавить
RuleController#setRules
, чтобы установить кучу правил - Извлечение правил, связанные с API, от
SplitController
в SingletonRuleController
. Они: -
addRule
-
removeRule
-
getRules
-
setRules
-
clearRules
-
parseRules
- Extract
#isActivityEmbedded
отSplitController
в SingletonActivityEmbeddingController
. Они: -
isActivityEmbedded
- Удалить
SplitController#initialize
. Чтобы установить правила из XML -файла, используйтеRuleController#parseRules
и#setRules
. Перед этим изменением:SplitController.initialize(context, R.xml.static_rules)
после этого изменения:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
- Мы больше не различаем статические правила с правилами выполнения. Тем не менее, вызов
#clearRules
Результаты, чтобы очистить все правила, независимо от того, что они зарегистрированы на статических определениях правил XML или во время выполнения. Чтобы иметь устаревшее поведениеSplitController#clearRegisteredRules
, пожалуйста, позвонитеRuleController#parseRules
с идентификатором ресурсов XML и вызовитеRuleController#setRules
чтобы снова отменить правила. Перед этим изменением:SplitController.getInstance(context).clearRegisteredRules()
После этого изменения:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
)
- Улучшить APIS Splitrule:
- Возьмите минимальные размеры в DP вместо пикселей для
SplitRule
. - Рефактор для
SplitRule
Builder, чтобы принимать минимальные размеры как необязательные. ( I95f17 )
- Возьмите минимальные размеры в DP вместо пикселей для
- Передайте контекст для инициализации
SplitController
( I42549 ) - Переименован
SplitRule#layoutDir
to#layoutDirection
иSplitRule Builder#setLayoutDir
toBuilder#setLayoutDirection
. ( I3f6d1 )
Версия 1.1.0-Alpha04
9 ноября 2022 г.
androidx.window:window-*:1.1.0-alpha04
выпускается. Версия 1.1.0-Alpha04 содержит эти коммиты.
Новые функции
- Распределите метод, чтобы определить, является ли
ActivityStack
пустым дляActivityEmbedding
. - Удаленные экспериментальные теги API из
ActivityEmbedding
API. - Скрыть конструктор
ActivityRule
какBuilder
является предпочтительным способом построения. - Добавьте экспериментальный метод, чтобы получить
WindowInsets
наWindowMetrics
. - Обновить
SplitPlaceholderFinishBehavior
, чтобы предотвратить завершение заполнителя. Заполнение заполнителя вызвало некоторое запутанное поведение.
Изменения API
- Сделайте Val
isEmpty
Public, чтобы заменить забавнуюisEmpty
. - Переименовать действия параметров
ActivityStack
в действиеactivitiesInProcess
. ( IA5055 ) - Удалите
ActivityFilter#matchesClassName
иActivityFilter#matchesClassNameOrWildCard
потому что они сбивают с толку. - Добавить
ActivityFilter#componentName
AbsdActivityFilter#intentAction
позволить вызывающему вызывающему различным фильтрам ( i41f22 ) - Удалить
@Deprecated
API из экспериментального API ( i216b3 ) - Удалить
@ExperimentalWindowApi
для активности, встраиваемые с API ( i69ebe ) - Скрыть конструктор
ActivityRule
, вместо этого используйте строитель. ( IF4EB6 ) - Добавьте API, чтобы проверить, является ли деятельность частью
ActivityFilter
. ( IA43CF ) - Обновить файлы API, чтобы отразить изменения в классах
WindowMetrics
иWindowMetricsCalculatorCompat
( i667fe ) - Обновление
ActivityEmbedding
свойство Javadoc и название класса ( IA1386 ) - Добавление названий тегов свойств
ActivityEmbedding
, которые будут использоваться в AndroidManifest.xml ( id1ad4 ) - Добавлен новый API
SplitPlaceholderFinishBehavior
иSplitPlaceholderRule.finishPrimaryWithPlaceholder
, это заменяет существующиеSplitPlaceholderRule.finishPrimaryWithSecondary
со стороны, который определяет, когда заполняются заполнители, как следует вести связанные активности в вступлении в действие. ( I64647 )
Исправления ошибок
- Представляет
WindowAreaController
и API, чтобы разрешить режимRearDisplay
перемещать текущее окно на дисплей, который выровнен с задней камерой. ( I388ab )
Версия 1.1.0-Alpha03
27 июля 2022 г.
androidx.window:window-*:1.1.0-alpha03
выпускается. Версия 1.1.0-Alpha03 содержит эти коммиты.
Новые функции
- Обновите значения по умолчанию для внедрения правил.
Изменения API
- Обновить значения по умолчанию для внедрения свойств правил. ( IC4D35 )
Версия 1.1.0-Alpha02
11 мая 2022 г.
androidx.window:window-*:1.1.0-alpha02
выпускается. Версия 1.1.0-Alpha02 содержит эти коммиты.
Новые функции
- Выпустите библиотеки адаптеров, чтобы поддержать Java и Rxjava.
Версия 1.1.0-Alpha01
11 мая 2022 г.
androidx.window:window-*:1.1.0-alpha01
выпускается. Версия 1.1.0-Alpha01 содержит эти коммиты.
Новые функции
- Выпуск адаптеров для поддержки Java и Rxjava
Версия 1.1.0-Alpha01
20 апреля 2022 г.
androidx.window:window:1.1.0-alpha01
выпускается. Версия 1.1.0-Alpha01 содержит эти коммиты.
Новые функции
- Исправляет ошибку, где фона приложение прекращает излучение функций сгиба.
- Расширить API экспериментального API.
Изменения API
- Общественный API, чтобы проверить, встраивается ли деятельность. ( I39eb7 )
Исправления ошибок
- Добавьте API, которые настраивают поведение отделки для контейнеров в расщеплениях активности ( i1a1e4 )
- Добавлена новая опция конфигурации для правил разделения активности. ( IEC6AF )
Версия 1.0
Версия 1.0.0
26 января 2022 г.
androidx.window:window-*:1.0.0
выпускается. Версия 1.0.0 содержит эти коммиты.
Основные особенности 1.0.0
- Поддержка складных телефонов через
WindowInfoTracker
иFoldingFeature
.WindowMetricsCalculator
, чтобы помочь вычислять текущие WindowMetrics.
Версия 1.0.0-RC01
15 декабря 2021 г.
androidx.window:window-*:1.0.0-rc01
выпускается. Версия 1.0.0-RC01 содержит эти коммиты.
Новые функции
- Добавьте поддержку для складных телефонов через
WindowInfoTracker
. - Добавьте методы для расчета текущей и максимальной
WindowMetrics
. - Добавьте вспомогательные испытательные API.
Версия 1.0.0-бета04
17 ноября 2021 г.
androidx.window:window-*:1.0.0-beta04
выпускается. Версия 1.0.0-BETA04 содержит эти коммиты.
Новые функции
- Переименовать windowinforePository в windowinfotracker.
- Сделайте активность явной зависимостью метода для WindowInfotracker.
- Добавьте простую тестирование для WindowmetricsCalculator, чтобы поддержать разработчиков с помощью Robolectric.
Изменения API
- Экстракт расширения ( i25a5f )
- Добавить Isempty в ActivityStack ( i5a4e6 )
- Переименовать windowinforePository в windowinfotracker.
- Обновите Java/Rxjava/Testing зависимости, чтобы соответствовать. ( I0da63 )
- Добавьте правило тестирования для простого WindowmetricsCalculator. ( Ibacdb )
Версия 1.0.0-бета03
27 октября 2021 г.
androidx.window:window-*:1.0.0-beta03
выпускается. Версия 1.0.0-BETA03 содержит эти коммиты.
Новые функции
- Добавить экспериментальную активность, встраивая API. Эта первоначальная версия макета позволяет показывать два действия рядом.
Изменения API
- Удалили API CurrentWindowMetrics, так как мы не можем предоставить его точно. Вместо этого используйте WindowmetricsCalculator ( ICDA5F )
- Обновлено API расширения. ( ICA92B )
- Добавлен интерфейс для новой функции, которая позволяет внедрять действия и показывает их бок о бок в окне родительской задачи. ( I5711d )
- Спрятали конструкторы для Windowmetrics и Windowlayoutinfo, используйте вместо этого тестовые API. ( I5a1b5 )
- Добавьте API, чтобы создать поддельные объекты Windowlayoutinfo. ( I4a2fd )
Исправления ошибок
- Исправлена утечка памяти. ( I3fc79 , b/202989046 )
Версия 1.0.0-бета02
1 сентября 2021 г.
androidx.window:window-*:1.0.0-beta02
выпускается. Версия 1.0.0-BETA02 содержит эти коммиты.
Новые функции
- Добавьте экспериментальную аннотацию, чтобы аннотировать экспериментальные API. ( I9f1b6 )
- Добавьте метод испытаний, чтобы создать тестовую складную функцию, которая принимает прямо. Это заставит его тестировать при использовании Robolectric, в отличие от фактической деятельности. ( Id1cca )
Версия 1.0.0-бета01
18 августа 2021 г.
androidx.window:window-*:1.0.0-beta01
выпускается. Версия 1.0.0-BETA01 содержит эти коммиты.
Новые функции
- Удалили старые константы и превратили
FoldingFeature
в интерфейс.
Изменения API
- Удалите старые константы и сделайте складку и сделайте интерфейс. ( I9a2d5 )
Исправления ошибок
- Библиотеки, которые зависят от
Test Core
были обновлены до версии1.4.0
и теперь будут работать с версией Android Platform S. ( I88B72 , B/189353863 )
Версия 1.0.0-Alpha10
4 августа 2021 г.
androidx.window:window-*:1.0.0-alpha10
выпускается. Версия 1.0.0-Alpha10 содержит эти коммиты.
Новые функции
- Переименовать windownforepo в windowinforePository и настраивать соответствующие классы / файлы.
- Преобразуйте токовые метрики окна в поток в WindowinForePository, так как значение меняется с течением времени.
- Переименовать windownforepojavaadapter в windowinforepocallbackadapter
- Добавить вспомогательный метод для создания объектов тестового складывания
- Обновление пакетов для групповых классов на основе функции, которую они поддерживают.
Изменения API
- Переименовать Activityext на ActivityExtensions Переход от репо в репозиторий. ( I61a16 )
- Обновить пакеты для занятий. ( I23ae2 )
- Удалить Windowmetrics из windownforepo ( i24663 )
- Удалить Windowmanager и использовать WindowinForePO
- Сделайте Windowbackend внутренним. ( I06D9A )
- Преобразовать показатели окон в теку.
- Переименовать адаптер Java в WindowinForePocallbackAdapter
- Удалите обратный сигнал, чтобы больше не использовались экспериментальные API. ( IA4D15 )
- Добавьте вспомогательный метод для создания функций тестового дисплея.
- Изменить от окклюзионного моде на окклюзионный тип ( if4cff )
Исправления ошибок
- Исправьте ошибку прогиарда, когда ясная библиотека удалялась.
- Исправлена ошибка, когда windowlayoutinfo не доставлялась дополнительным подписчикам.
- Исправлена ошибка, когда изменения конфигурации не будут запускать обновления функций складывания.
Версия 1.0.0-Alpha09
30 июня 2021 г.
androidx.window:window-*:1.0.0-alpha09
выпускается. Версия 1.0.0-Alpha09 содержит эти коммиты.
Новые функции
- Переход от целочисленных постоянных на неограниченные перечисления.
- Добавьте тестовый утилит, чтобы создать функции складывания тестирования.
Изменения API
- Добавьте вспомогательный метод для создания функций тестового дисплея. ( I3cf54 )
- Изменить от
occlusionMode
наocclusionType
.
- Изменить от
Исправления ошибок
- Издайте начальное значение при добавлении нескольких потребителей потоков данных.
Версия 1.0.0-Alpha08
16 июня 2021 г.
androidx.window:window-*:1.0.0-alpha08
выпускается. Версия 1.0.0-Alpha08 содержит эти коммиты.
Новые функции
- Выпустил артефакт тестирования, чтобы облегчить тестирование при использовании WindowinForePository. Используйте windowinforePository, чтобы получить информацию о фиксациях отображения и Windowmetrics. ( I57f66 , ida620 )
Версия 1.0.0-Alpha07
2 июня 2021 г.
androidx.window:window-*:1.0.0-alpha07
выпускается. Версия 1.0.0-Alpha07 содержит эти коммиты.
Новые функции
- Мигрируйте библиотеку ядра в Котлин. Будет использовать CORUTINES и приостановить функции для раскрытия асинхронных данных в будущем.
- Добавьте windowinforepo в качестве основной точки взаимодействия для получения Windowmetrics и потока Windowlayoutinfo.
- Новый артефакт
window-java
для разоблачения API, удобных для Java, для регистрации и отмены обратных вызовов. - Новые артефакты
window-rxjava2
иwindow-rxjava3
для выставки Rxjava адаптированных API.
Изменения API
- Добавьте
WindowServices
, чтобы обеспечить зависимости равномерно.- Добавьте API на основе Coroutine, чтобы употреблять информацию о макете окна. ( IAB70F )
- Мигрируйте библиотеку менеджера по основному управлению в Котлин. ( ICCA34 )
Исправления ошибок
- Добавьте новый класс данных, чтобы представить границы функций. ( I6dcd1 )
Версия 1.0.0-альфа06
5 мая 2021 г.
androidx.window:window:1.0.0-alpha06
выпускается. Версия 1.0.0-Alpha06 содержит эти коммиты.
Новые функции
- Мы начали нашу миграцию в Котлин и закончим в следующем релизе.
- Devicestate был удален из публичного API, пожалуйста, используйте вместо этого FoldingFeature.
- Мы удалили
STATE_FLIPPED
из состояний складного отличия, поскольку в данный момент он не поддерживается каким-либо вариантом использования. - Мы также удалили другие устаревшие API.
Изменения API
- Добавление котлина в качестве зависимости.
- Мигрировать основную библиотеку в Котлин. ( IDD995 )
- Удаленное строитель
DisplayFeature
. ( I61fa4 ) - Удален
DeviceState
из публичного API, используйте вместо этогоFoldingFeature
. ( ID6079 ) - Удалить обратный вызов состояния устройства из расширений. ( I5ea83 )
- Удалите
STATE_FLIPPED
из FoldingFeature. ( I9c4e1 ) - Удалить устаревшие методы регистрации. ( IB381B )
Версия 1.0.0-альфа05
24 марта 2021 г.
androidx.window:window:1.0.0-alpha05
выпускается. Версия 1.0.0-Alpha05 содержит эти коммиты.
Новые функции
Мы добавили удобные методы к складыванию, чтобы приложения могли определить, разделяет ли функция, окклюзирует и определяет ориентацию шарнира. Мы также скрываем тип шарнира, чтобы
Мы удаляем методы синхронного чтения от Windowmanager. Синхронные методы чтения подвержены ошибкам, так как существует неявное условие гонки. Зарегистрируйте слушатели и обратные вызовы для получения обновлений в Windowlayoutinfo.
Изменения API
- Добавьте удобные методы для работы с FoldingFeatures ( IE733F )
- Удаляет методы синхронного чтения от Windowmanager ( i96fd4 )
Версия 1.0.0-альфа04
10 марта 2021 г.
androidx.window:window:1.0.0-alpha04
выпускается. Версия 1.0.0-Alpha04 содержит эти коммиты.
Новые функции
- Исправляет ошибку, в которой Windowlayoutinfo не испускается, если нет реализации OEM. Теперь мы излучаем пустую windowlayoutinfo.
- Исправьте ошибку, в которой состояние не обновляется должным образом, если бы состояние шарнира изменилось, когда приложение было фоне. Теперь государство должно быть последовательным.
- Обновите наши файлы Proguard, чтобы игнорировать предупреждения от зависимостей времени выполнения.
Исправления ошибок
- Излучайте пустое значение, когда библиотека OEM отсутствует. ( IDE935 )
Версия 1.0.0-альфа03
18 февраля 2021 г.
androidx.window:window:1.0.0-alpha03
выпускается. Версия 1.0.0-Alpha03 содержит эти коммиты.
Новые функции
- Издайте пустое значение для Windowlayoutinfo, когда реализация OEM пуста. Это должно облегчить использование библиотеки на большем количестве устройств. Поскольку API являются асинхронными, все еще рекомендуется, чтобы приложения написали немного защитного кода и испускали значение по умолчанию после тайм -аута. У нас нет никаких гарантий на реализации OEM, и начальное значение может быть отложено.
Исправления ошибок
- Излучайте пустое значение, когда библиотека OEM отсутствует. ( IDE935 )
Версия 1.0.0-альфа02
27 января 2021 г.
androidx.window:window:1.0.0-alpha02
выпускается. Версия 1.0.0-Alpha02 содержит эти коммиты.
Новые функции
Мы установили некоторые API, чтобы помочь упростить API и уменьшить ошибки. Некоторые примечательные примеры - удаление синхронных операций чтения из Windowmanager и выходить из Devicestate. Синхронные операции чтения могут привести к условиям гонки и иметь неверный пользовательский интерфейс.
Мы преобразовали DisplayFeature в интерфейс, который будут реализовать другие функции в будущем. Наша первая функция - FoldingFeature, которая теперь является представлением экрана сгиба или шарнира. Это также содержит состояние шарнира, заменяющего Devicestate.
Windowmetrics была введена в Android 11, чтобы предоставить разработчикам простой способ запроса метрик о окне, например, его положение и размер на экране и любые системы системы. Мы вернули API в этом выпуске, чтобы разработчики могли использовать Windowmetrics и продолжать поддерживать старые версии Android. Windowmetrics можно получить через
WindowManager#getCurrentWindowMetrics()
и Windowmanager#getMaximumWindowMetrics () API.
Изменения API
- Установите API, которые будут удалены в следующей альфа ( IB7CC4 )
- Обновления
ExtensionInterface
, чтобы принять явные ссылки на деятельность. ( I07ded ) - Представляет API Windowmetrics. ( I3ccee )
- Удалить методы синхронного чтения из Windowmanager ( i69983 )
- Сделайте защиту пакета ExtensionWindowBackend. ( IED208 )
Исправления ошибок
- Обновить API
ExtensionInterface
для принятия визуального контекста. ( I8e827 )
Внешний вклад
- Merge Devicestate и Windowlayoutinfo, так что его легче получить доступ к данным. ( ID34F4 )
Версия 1.0.0-альфа01
27 февраля 2020 г.
androidx.window:window:1.0.0-alpha01
и androidx.window:window-extensions:1.0.0-alpha01
выпускаются. Версия 1.0.0-Alpha01 содержит эти коммиты. Это первый выпуск библиотеки Window Manager.
Новые функции
-
DisplayFeature
: этот новый API идентифицирует сбои на непрерывных поверхностях плоского экрана, таких как петли или складки -
DeviceState
: Этот новый API предоставляет текущую осадку телефона из списка определенных позов (например,CLOSED
,OPENED
,HALF_OPENED
и т. Д.)