Jetpack Compose для XR
| Последнее обновление | Стабильный релиз | Предварительная версия релиза | Бета-версия | Альфа-версия |
|---|---|---|---|---|
| 12 августа 2026 г. | - | - | - | 1.0.0-alpha17 |
Объявление зависимостей
Чтобы добавить зависимость от XR Compose, необходимо добавить репозиторий Google Maven в ваш проект. Для получения дополнительной информации ознакомьтесь с информацией в репозитории Google Maven .
Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:
классный
dependencies { implementation "androidx.xr.compose:compose:1.0.0-alpha17" // Use to write unit tests testImplementation "androidx.xr.compose:compose-testing:1.0.0-alpha17" }
Котлин
dependencies { implementation("androidx.xr.compose:compose:1.0.0-alpha17") // Use to write unit tests testImplementation("androidx.xr.compose:compose-testing:1.0.0-alpha17") }
Для получения дополнительной информации о зависимостях см. раздел «Добавление зависимостей сборки» .
Обратная связь
Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав кнопку со звездочкой.
Для получения более подробной информации см. документацию по системе отслеживания ошибок .
Версия 1.0
Версия 1.0.0-alpha17
12 августа 2026 г.
Выпущены androidx.xr.compose:compose:1.0.0-alpha17 и androidx.xr.compose:compose-testing:1.0.0-alpha17 . Версия 1.0.0-alpha17 содержит следующие коммиты .
Изменения в API
- Удалите класс значения
Meter, он заменен наvirtualPixelDensityвScenecore. ( I690ee ) - API
SpatialGltfModelв настоящее время является экспериментальным и требует активации для использования. ( I4557e ) - Сделать так, чтобы изменяемый размер
systemдопускал значение null ( Ib0093 ) - Отображаемая
DensityвSubspaceSemanticsInfoдля тестирования. ( I2e826 ) - Переименуйте параметр
ResizePolicyпо умолчанию вsystemи добавьте новый параметрDefaultбез параметров ( Ic8b16 ). - Функция
FollowTargetпомечена как экспериментальная. Весь APIFollowingSubspaceтеперь является экспериментальным. ( Id4ee3 ) - Удаление API
GltfAnimation( IC2894 ) - Переименован параметризованный метод
MovePolicy.default()вMovePolicy.system(). Введено свойствоval MovePolicy.Defaultдля представления стандартного поведения перемещения по умолчанию. ( Iedcc9 ) - Расширить требования к включению
ExperimentalMoveAnchorPolicyдляPlaneSemanticиPlaneOrientation( Ief927 ) - Удалите
resetMinsизVolumeConstraints.offset( Ib2f2f ) - Удалена устаревшая функция
SceneCoreEntitySizeAdapter. ( Ib6722 ) - Удалена устаревшая перегрузка
Subspaceс помощьюallowUnboundedSubspace. ( I8e97f ) - Удалена перегрузка устаревшего модификатора семантики. ( I4ac10 )
Исправлены ошибки
- Исправлена ошибка, из-за которой дочерние элементы
Composableс прикрепленнойInteractionPolicyзапускали события ввода ( Icdba6 ).
Версия 1.0.0-alpha16
15 июля 2026 г.
Выпущены androidx.xr.compose:compose:1.0.0-alpha16 и androidx.xr.compose:compose-testing:1.0.0-alpha16 . Версия 1.0.0-alpha16 содержит следующие коммиты .
Изменения в API
- Удаление API
ComponentOverride( I820c4 ) - API
GltfAnimationиSpatialGltfModelAnimationпомечены как экспериментальные. Некоторые свойства были преобразованы в геттеры. ( I8d689 , b/524771027 ) - Исправлено общее поведение плотности за счет установления постоянного коэффициента преобразования между Meter и пикселями. Устаревший Meter.kt, теперь можно использовать
Session.scene.virtualPixelDensityв качестве альтернативы. ( I122ff , b/430097855 , b/474168798 ) - Обновите модификатор resizable, чтобы вместо двух модификаторов использовался
ResizePolicy( I7fb0f , b/496257436 , b/519672992 ). - Добавлен параметр допуска:
Dp = Dp(0.5f)ко всем общедоступным утверждениям равенства размеров и позиций с плавающей запятой вSubspaceAssertions.kt. Поведение допуска по умолчанию (0.5.dp) полностью задокументировано. ( I266cb , b/521491915 ) - Добавлена перегрузка метода movable с параметром
movePolicy, аtransformingMovableиmovableобъявлены устаревшими ( Ic88c1 , b/481781189 ). - Добавлены новые неинтерактивные варианты стандартного элемента списка и сегментированного элемента списка, соответствующие спецификациям Material Expressive. Неинтерактивная версия устарела. ( Ide4de , b/491994186 )
- Для модификатора Subspace параметр
allowUnboundedSubspaceтеперь устарел и скрыт. Теперь неограниченное поведение следует достигать с помощьюSubspaceModifier.requiredSizeIn(maxWidth=Dp.Infinity,maxHeight=Dp.Infinity,maxDepth=Dp.Infinity) в модификаторе Subspace. ПараметрallowUnboundedSubspaceбыл удален изFollowingSubspace. ( Ia72ae , b/433624021 ) -
Session.createпреобразована в функцию приостановки. ( I5d27f ) - Добавлена
SubspaceModifier.spatializedAudioOutput, позволяющая пространственно обрабатывать воспроизведение звука черезExoPlayerилиSoundEffectPlayer( I46697 , b/489421980 , b/497867019 ). - Обновлены
ComponentActivity.requestHomeSpace()иrequestFullSpace(), теперь они возвращаютSpaceRequestResultдля проверки статуса. ( If1672 ) -
AnchorEntityбыл переименован вAnchorSpace( Ifa95e , b/513619219 ) - Метод unrestricted
fromResourceизSpatialGltfModelSource( I1f5a1 , b/503047416 ) - Члены класса
SubspaceSemanticsMatcherявляются публичными: свойствоdescription, сопутствующие фабричные методы (expectValue,keyIsDefined,keyNotDefined), функции-члены (matches,matchesAny) и операторы (and,or,not). ( I972a4 , b/460427288 ) - Обновлены
SubspaceModifier.semantics,SubspaceModifier.testTag,SubspaceSemanticsInfo,SubspaceSemanticsModifierNodeдля использования специально подобранных типов пространственной семантики. ( I80dea , b/460427288 ) - В
SpatialAlignmentпереименованоpositionдляalign, а отдельные методы смещения по направлению удалены в пользу единого APIalign. ( I9bdb2 , b/479805937 ) - Удалены устаревшие API космического режима из
SpatialConfiguration. ( I1ef5c , b/458712461 ) - Введен
SubspaceSemanticsConfiguration. Это класс для настройки семантических свойств пространственного узла. Этот класс безопасно предоставляет методы запросов для 3D-семантики, не раскрывая при этом базовые возможности 2D-семантики внешним потребителям. ( Id025e , b/460427288 ) - Представлен
SubspaceSemanticsPropertyReceiver: специальная оболочка, которая ограничивает свойства контейнера 3D-макета допустимыми полями (первоначальноtestTagиcontentDescription). ( I5cf5c , b/460427288 )
Исправлены ошибки
- Обновлен модификатор `
hasContentDescriptionдля `Semantic`, теперь по умолчанию используется сопоставление подстрок. ( I08214 ) - Добавлена ограниченная функция
FollowBehavior.ExponentialDecay(), которая обеспечивает плавное следование, управляемое упругой физикой. ( I7449c , b/485639909 , b/500493335 )
Это затронет большинство API. В частности, CompositionLocal LocalSession и все CompositionLocals , зависящие от LocalSession (например, LocalSpatialConfiguration , LocalSpatialCapabilities и т. д.), теперь будут возвращать значение null или его не-XR версии до инициализации Session .
Как только Session станет доступна, будет запущена перекомпозиция с правильным состоянием. ( I0cfa4 , b/514712835 , b/514712835 )
- Уточнена документация для
ComponentActivity.requestHomeSpaceиComponentActivity.requestFullSpaceотносительно поведения приостановки, отмены и параллельного выполнения. Обновлены тесты для проверки распространенияCancellationException. ( I22f75 , b/493289528 )
Версия 1.0.0-alpha15
17 июня 2026 г.
Выпущены androidx.xr.compose:compose:1.0.0-alpha15 и androidx.xr.compose:compose-testing:1.0.0-alpha15 . Версия 1.0.0-alpha15 содержит следующие коммиты .
Изменения в API
- Устаревшая
ResizePolicyи старый модификатор resizable заменены новой перегрузкойSubspaceModifier.resizableиSubspaceModifier.transformingResizable. ( I9e4bc ) - Обновлены API
SpatialGltfModel: добавлена поддержка загрузки моделей из ресурсов черезSpatialGltfModelSourcefromResourceПереименована переменная speed вplaybackSpeedвSpatialGltfModelAnimationи добавлен метод resume().SpatialGltfModelStatusи Loading теперь являются объектами. ( I523de ) - API
rotateToLookAtUserпомечен как экспериментальный. ( I86c16 ) - Переместили и переименовали защищенную переменную
targetCurrentPoseв локальную переменнуюcurrentTargetPoseMeter. ( Ia557c ) - Обновите документацию kdocs для
SpatialPanelиSpatialExternalSurface, чтобы указать, где объект отображается в пределах размера его макета ( I72104 ). - Логика загрузки
SpatialGltfModelинкапсулирована вSpatialGltfModelState, а поведение при сбоях уточнено. ( Ibe98b ) - Уточнена
depthвSubspaceModifer.sizeв документации kdocs ( I0f84f )
Версия 1.0.0-alpha14
19 мая 2026 г.
Выпущены androidx.xr.compose:compose:1.0.0-alpha14 и androidx.xr.compose:compose-testing:1.0.0-alpha14 . Версия 1.0.0-alpha14 содержит следующие коммиты .
Изменения в API
- Введена
transformingMovableдля управления трехмерным перемещением по умолчанию, а также новая перегрузка для функцииmovableдля обработки пользовательских вариантов перемещения. ( I50960 ) -
SpatialGltfModel.fromData()был удален. ( I4d083 ) - Добавлен новый интерфейс узла-модификатора,
SubspaceMeasuredSizeAwareModifierNode, который предоставляет обратный вызовonRemeasuredпосле прохода измерения.SubspaceLayoutAwareModifierNodeтеперь расширяет этот новый интерфейс. МодификаторonSizeChangedбыл обновлен для использованияonRemeasured, что гарантирует запуск обратного вызова сразу после измерения, а не после размещения. ( Iafbae ) - Обновлена
InteractionPolicyдляInterface( I0ff30 ) - Обновлен Compose
compileSdkдо API 37. Это означает, что для использования Compose требуется минимальная версия AGP 9.2.0. ( Id45cd ) - Обновленный
Sizekdocs ( Iefa9a )
Версия 1.0.0-alpha13
6 мая 2026 г.
Выпущены androidx.xr.compose:compose:1.0.0-alpha13 и androidx.xr.compose:compose-testing:1.0.0-alpha13 . Версия 1.0.0-alpha13 содержит следующие коммиты .
Изменения в API
- В API Orbiter ожидаются дополнительные изменения, поэтому мы рекомендуем отключить уведомления об устаревании Orbiter и следить за изменениями в Orbiter в будущих релизах.
- Тем, кто использует
SceneCoreEntityдля рендеринга glTF-файлов, следует убедиться, что они передаютsession.scene.activitySpaceв качестве параметраparentвызоваGltfModel.create, чтобы гарантировать рендеринг glTF-файлов. - Добавление API
SpatialGltfModel, позволяющего разработчикам добавлять GLTF-модели в свои приложения Compose For XR. Разработчики также могут запрашивать анимацию и узлы внутри своих GLTF-моделей. ( I8b542 , b/495422586 ) - Преобразует
SceneCoreEntitySizeAdapterиз класса в интерфейс ( I5a784 , b/475292310 ) - Переименована
SurfaceProtectionвSpatialExternalSurfaceProtection. Обновлена документация kdocsSpatialExternalSurface( Ifad0a , b/485231082 ). - Объявить
currentWindowAdaptiveInfoустаревшим и ввести его версию V2 ( I40ecf , b/424442112 ) - Модификатор
resizableтеперь является общедоступным и применим к группам (например,SpatialRow). ( I2bcf6 , b/348483527 , b/489753178 , b/479530787 ) - Модификатор
movableтеперь доступен публично. В настоящее время этот модификатор хорошо работает дляSpatialPanelsиSpatialExternalSurface; однако планируется обеспечить его хорошую поддержку для всехSubspaceComposables. ( I9a3cd , b/479530787 , b/478935063 , b/478935063 ) -
SpatialEnterTransitionиSpatialExitTransitionпомечены как@Immutable( If1710 , b/487757837 ) - API
SpatialGltfModelпомечен как ограниченный для данного выпуска до проведения дополнительных тестов. ( Ibf003 , b/466090694 ) - Переименовано
DeviceTrackingMode.LAST_KNOWNвSPATIAL_LAST_KNOWN(с устаревшим резервным вариантом), добавленоINERTIAL_LAST_KNOWNдля отслеживания 3 степеней свободы и добавленоTRACKING_DEGRADEDвTrackingState. ( Ie661c , b/445466590 ) - Удаление устаревшего
SpatialLayoutSpacer( I7b36c ) - Удаление устаревшего API для заполнения ( If1886 )
- Добавлен
floatRangeк значениям смещения. Удалено значение по умолчанию дляLayoutDirection( I9d74e ).
Исправлены ошибки
- Добавлены примеры кода и документация KDoc для
SpatialColumn,SpatialRowиSpatialCurvedRow. ( Iaf54f , b/495777633 )
Версия 1.0.0-alpha12
25 марта 2026 г.
Выпущены androidx.xr.compose:compose:1.0.0-alpha12 и androidx.xr.compose:compose-testing:1.0.0-alpha12 . Версия 1.0.0-alpha12 содержит следующие коммиты .
Изменения в API
- Добавлены API
SpatialGltfModelиSpatialGltfModelAnimationдля рендеринга glTF-файлов и управления анимацией. Изменено состояниеSpatialGltfModelStateнаAutoCloseable, теперь его необходимо закрыть, чтобы освободить ресурсы. ( I11fde , b/466065486 , b/481379924 ). Однако APISpatialGltfModelпомечен как ограниченный для этого релиза до проведения дополнительных тестов. ( Ibf003 , b/466090694 ) - Добавлена устаревшая пустая перегрузка для
SubspaceModifier.rotate. ( Idceb6 ) - Функция
SpatialSmoothFeatheringEffectпереименована вspatialSmoothFeatheringEffectи перемещена в модуль отрисовки. Значение сглаживания по умолчаниюSpatialExternalSurfaceобновлено до null, что имитирует старую функциональность ZeroFeatheringEffect. ( I5fdaa , b/460426800 ) - Удален
onPointSourceParamsAvailable. В ближайшем будущем будет доступен другой API для пространственной обработки звука. ( I86507 , b/458513439 ) - Добавлено поведение RTL для модификаторов подпространства смещения. Также добавлена
absoluteOffset, позволяющая игнорировать направление компоновки. ( I30e4b , b/474409165 )
Версия 1.0.0-alpha11
25 февраля 2026 г.
Выпущены androidx.xr.compose:compose:1.0.0-alpha11 и androidx.xr.compose:compose-testing:1.0.0-alpha11 . Версия 1.0.0-alpha11 содержит следующие коммиты .
Новые функции
- Добавление параметра
SuperSamplingкSpatialExternalSurfaces( Icd4d1 )
Известные проблемы
- Проблема с
SurfaceEntityв SceneCore может приводить к сбоям приложений при создании экземпляровSpatialExternalSurface. Эта проблема решена вandroidx.xr.scenecore:scenecore-*:1.0.0-alpha13,androidx.xr.compose:compose:1.0.0-alpha12и их последующих релизах. Затронутым приложениям следует обновиться до последних версий.
Изменения в API
- Изменения в заполнении модификаторов подпространства для учета направления компоновки. ( I53e25 )
-
SpatialCapabilitiesтеперь закрыта и не может быть расширена. ( I07aef ) - API-интерфейсы
SpatialRowиSpatialColumn, принимающие общий параметрSpatialAlignmentустарели; вместо них используйте API-интерфейсы, принимающие либоverticalAlignment, либоhorizontalAlignmentдляSpatialRowиSpatialColumnсоответственно. ( Iec390 ) - Объединение перегрузки API функций
SubspaceLayout( IDD30a ) - Переименована
SubspaceModifier.lookAtUserвrotateToLookAtUser, а параметрupвupDirection. ( Icafb8 ) - Превращение функции
SpatialRowво встроенную функцию ( Ia2f20 ) - Превращение
SpatialColumnво встроенную функцию ( I681be ) - Удалён API для рекламных щитов ( Ib76cd )
Версия 1.0.0-alpha10
28 января 2026 г.
Выпущены androidx.xr.compose:compose:1.0.0-alpha10 и androidx.xr.compose:compose-testing:1.0.0-alpha10 . Версия 1.0.0-alpha10 содержит следующие коммиты .
Изменения в API
- Удаление устаревшего API -
ApplicationSubspace( Ia6596 , b/468345186 ) - Обновлена
SpatialShapeдо герметичного интерфейса ( I7e3f5 , b/460426800 ) - Удаление устаревших API в
SpatialAlignment. ( Ib0b61 , b/468011887 ) - Прекращение поддержки
SpatialLayoutSpacerи введениеSpatialSpacer. ( I2ebf3 , b/466071383 ) - Обновлен API
UserSubspace: термин «ленивая блокировка» заменен на «мягкая блокировка». ( I9ded1 , b/464035984 )
Версия 1.0.0-alpha09
3 декабря 2025 г.
Выпущены androidx.xr.compose:compose:1.0.0-alpha09 и androidx.xr.compose:compose-testing:1.0.0-alpha09 . Версия 1.0.0-alpha09 содержит следующие коммиты .
Изменения в API
- Добавление модификаторов
LookAtUserи Billboard, позволяющих контенту всегда быть обращенным к пользователю. ( I49b99 ) - Добавляет возможность устанавливать
InteractionPolicyдляSpatialExternalSurfacesиSpatialPanels, что позволяет обнаруживать щелчки и другие события ввода в 3D-пространстве. ( Iae155 ) - Добавлена перегрузка модификаторов size и
requiredSizeс шириной, высотой и глубиной в качестве значений Dp. ( I92f79 ) - Интерфейс
ParentLayoutParamsModifierтеперь наследуетDelegatableSubspaceNode. ( I1a6d4 ) -
ApplicationSubspaceустарела, в пользу неё используется API Subspace.- Поведение API подпространства изменено таким образом, чтобы предоставлять подпространство, охватывающее все приложение, только в рекомендуемом положении и масштабе.
- Представлен API
PlanarEmbeddedSubspace, позволяющий создавать вложенные подпространства в двумерном контексте. ( Id3343 )
- В API
SubspaceModifier.Nodeдобавлен флагshouldAutoInvalidate( I93902 ) - Добавлено
required(Size|Width|Depth|Height)в API, позволяющие разработчикам ограничивать размер@SubspaceComposableопределенным диапазоном, игнорируя входящие ограничения измерений родительского элемента. ( Ifaa78 ) - Добавлена
SubspaceModifier.onSizeChanged, которая предоставляет разработчикам простой, сфокусированный коллбэк для реагирования на изменение размера объекта@SubspaceComposable. ( I994f9 ) - Удалён API для работы с объёмом. Вместо API для работы с объёмом следует использовать API
SceneCoreEntity. ( I4162b ) - Разделить
SubspaceLayoutModifierNode.requestRelayoutнаinvalidateMeasurement/invalidatePlacement. ( I14805 ) - Добавлен API
SpatialGltfModel, позволяющий разработчикам отображать файлы glTF в Compose. ( Icc91f ) - Представлен компонуемый API
SpatialGltfModelдля упрощения рендеринга glTF-файлов ( Iade67 ).
Исправлены ошибки
- Исправлена ошибка компоновки в
SceneCoreEntity. Теперь он должен корректно учитывать свои ограничения. ( I11bb8 ) - Уменьшить размер модулей jxr-compose до
Compile sdk = 34( I2d5db )
Версия 1.0.0-alpha08
22 октября 2025 г.
Выпущены androidx.xr.compose:compose:1.0.0-alpha08 и androidx.xr.compose:compose-testing:1.0.0-alpha08 . Версия 1.0.0-alpha08 содержит следующие коммиты .
Изменения в API
- Изменена
ResizePolicyдля приемаonResizeStart,onResizeUpdateиonResizeEnd. ( I7e21f )
Исправлены ошибки
- Предотвращение сбоя при уничтожении Activity с подпространством. ( I595a1 )
Версия 1.0.0-alpha07
24 сентября 2025 г.
Выпущены androidx.xr.compose:compose:1.0.0-alpha07 и androidx.xr.compose:compose-testing:1.0.0-alpha07 . Версия 1.0.0-alpha07 содержит следующие коммиты .
Изменения в API
- Улучшена документация KDocs для
SpatialMainPanel. ( I27b70 , b/444467891 ) - Введена
SpatialArrangementдля размещения дочерних элементов вдоль главной оси в трехмерных макетах, таких какSpatialRowиSpatialColumn. Этот новый API предоставляет знакомые параметры размещения из 2D Compose, включаяStart,End,Center,SpaceBetween,SpaceAroundиSpaceEvenly, с полной поддержкой как LTR, так и RTL направлений компоновки. ( I7db38 , b/436289959 ) - Добавлен базовый интерфейс для
SubspaceModifier.Nodeдля повышения типобезопасности и удобства использования интерфейсов расширения, например:-
CompositionLocalConsumerSubspaceModifierNode -
LayoutCoordinatesAwareModifierNode -
SubspaceLayoutModifierNode -
CoreEntityNode(internal) ( Iede00 , b/440599394 , b/440599394 )
-
- Unrestrict
SpatialExternalSurface( I33315 , b/439646773 ) - Ввести
SubspaceModifierдля компонуемых объектов Subspace и заменить параметр constraints сSubspaceModifierнаSubspaceModifiers, зависящие от размера. ЕслиallowUnboundedSubspaceимеет значение true, объекты Subspaces по-прежнему могут иметь неограниченные ограничения. ( Ib06e6 , b/433331675 ) - Модификаторы
SubspaceModifiersпозволяющие перемещать и изменять размер элементов, теперь считаются устаревшими, посколькуDragPolicy()иResizePolicy()стали частью APISpatialPanelиSpatialExternalSurface( I397bf , b/437924639 ). - Добавлена поддержка
LayoutDirectionв пространственных макетах. Теперь при использованииSpatialAlignmentэлементы будут корректно располагаться как в контекстах LTR, так и RTL. ( I964bb , b/436300273 ) - Добавьте параметры Resizable и Movable в API
Panel, чтобы гарантировать, что эти свойства могут применяться только к поддерживаемым контейнерам. ( Id491c ) - Добавлены
SubspaceModifierssizeIn,widthIn,heightIn,depthInпозволяющие задавать точные минимальные и максимальные ограничения для ширины, высоты и глубины. ( I1af09 , b/433330761 )
Версия 1.0.0-alpha06
13 августа 2025 г.
Выпущены androidx.xr.compose:compose:1.0.0-alpha06 и androidx.xr.compose:compose-testing:1.0.0-alpha06 . Версия 1.0.0-alpha06 содержит следующие коммиты .
Исправлены ошибки
- Восстановить
ComposeXrOwnerLocalsпри уничтожении владельца жизненного цикла. ( 9123ce1 )
Версия 1.0.0-alpha05
30 июля 2025 г.
Выпущены androidx.xr.compose:compose:1.0.0-alpha05 и androidx.xr.compose:compose-testing:1.0.0-alpha05 . Версия 1.0.0-alpha05 содержит следующие коммиты .
Новые функции
- Класс аннотации
SubspaceComposableстал общедоступным. ( Ic2a34 , b/399432430 ) - Два новых компонента
SpatialExternalSurfaceComposable, представляющие сферы с углом обзора 180 и 360 градусов. ( I40ef2 , b/391705799 ) - Добавлен
SubspaceModifier.aspectRatio( Ide5ab , b/399729509 , b/414762147 ) - Добавлен API
SceneCoreEntityдля улучшения взаимодействия междуSceneCoreи Compose for XR. ( I50bb3 , b/423020989 ) - Предоставлен API
GravityAlignedsubspaceдля поддержки функции Unscaled AndGravityAligned( I07359 )
Изменения в API
- Функция
SpatialDialog()будет следовать конфигурации нажатия клавишиSpatialDialogProperties.dismissOnBack. ( Ib453b , b/416797132 ) - Обновите
minimumPanelDimensionдо нового значения по умолчаниюDimensions(0.1f, 0.1f, 0.1f)поскольку он представлен в метрах. ( Ib852a ) - Теперь подпространства и орбитальные аппараты будут сохранять своё внутреннее состояние в домашнем пространстве и при работе приложения в фоновом режиме. В режиме домашнего пространства подпространство по-прежнему будет настраивать свою сцену в рамках подготовки к переключению в полномасштабный космический режим. ( I40317 , b/416037751 )
- Теперь
SpatialDialogsбудут сохранять свое состояние, когда приложение находится в фоновом режиме. ( I6aa56 ) - Теперь
ApplicationSubspaceбудет наследовать рекомендуемый масштаб и положение от системы. ( I4565f , b/418834194 ) - Добавлено более информативное сообщение об ошибке, и ошибка возникает раньше, когда
SubspaceComposableиспользуется в контексте, отличном отSubspaceComposable. ( Iee2ae , b/416484684 ) - Изменение статуса
ExperimentalSubspaceVolumeApiс Warning на Error, поскольку предупреждения часто игнорируются при неправильном использовании компонуемых API. ( I427aa , b/424864286 ) - Теперь параметры Subspace и
ApplicationSubspaceограничены параметромrecommendedContentBoxInFullSpace. Ранее они ограничивались полем зренияSpatialUser. ( I41015 , b/423074142 ) - Обновите
SpatialElevation, чтобы использовать минимальный размер, а не жестко заданный размер ( I2dbe6 , b/427785338 ). - Обновите способ скриминга
SpatialAcitivityPanel, чтобы он обновлялся при изменении ключевой переменной. ( I0f64d , b/427999029 ) - Удалите свойство
VolumeConstraints.Unboundedи установите значения ограничений по умолчанию на эквивалентные. ( Ie24ec , b/407938414 ) -
SpatialFeatheringSizeбольше не является общедоступным ( I1c15b , b/399432430 ). - Переименовали XR
PlaceableвSubspacePlaceable, чтобы отличить его отPlaceableиз Compose. ( I74874 ) - Удалены настройки Orbiter и добавлен новый параметр
shouldRenderInNonSpatial. Кроме того, удален классEdgeOffsetи добавлен новый параметрorbiterOffsetTypeдля объединения функцийOrbiter(). А также переименованOrbiterEdgeвContentEdge. ( Iebf3d ) - Переименование
MeasurableвSubspaceMeasurableдля отличия от типаMeasurableв Compose. ( I9726c ) - Переименовать
MeasureResultвSubspaceMeasureResult( I9f34d ) - Удалён API
setSubspaceContentв пользу использованияsetContentиз Compose с компонуемымSubspace. ( Ifff4c , b/421427391 , b/421427391 ) -
MeasurePolicyпереименован вSubspaceMeasurePolicy. ( I37a9b , b/422553904 ) - Преобразуйте
SubspaceSemanticsInfoв закрытый интерфейс, поскольку без значений по умолчанию мы не сможем добавлять элементы. ( I372f9 , b/423704068 ) - Обновлена документация
SpatialExternalSurface,ContentSecurityLevelпереименован вSurfaceProtection( I3c460 , b/420982808 ) - Предоставлен перегруженный конструктор для модификатора movable, позволяющий устанавливать привязку. ( Ic0c70 )
- Добавлено больше параметров позиционирования для всплывающих подсказок, чтобы разработчики могли контролировать, где подсказка располагается: выше, ниже, слева или справа от якоря. Добавлен API, принимающий параметр Shape для курсоров, что позволит предоставлять больше пользовательских форм. ( Ie513c , b/374766087 , b/418854637 )
- Удален
CoreEntityкакPublishedApi( Ifee05 )
Исправлены ошибки
- Исправлена ошибка, из-за которой
SpatialDialogмерцал во время рендеринга. ( Ife73c , b/401619909 ) - Исправлена ошибка, из-за которой
SpatialDialogне мог скрыть панель действий. ( I8ca6c , b/367442109 ) - Исправлена ошибка, из-за которой диалоговое окно XR не отображало часть содержимого ( I17cd5 , b/418062437 )
- Исправлена ошибка, из-за которой всплывающее окно
SpatialPopupзакрывалось при нажатии внутри контента. ( If262c , b/417245722 ) - Исправлена ошибка, из-за которой при использовании цепочки вызовов
resizable().movable()SpatialPanel некорректно изменял свой размер до нового значения. ( I02ee3 , b/422264230 ) - Исправлена ошибка, из-за которой
topBarперекрывала меню вSpatialComposeVideoPlayer( Id33bc , b/427168167 ). - Исправлена ошибка, из-за которой не отображался радиус скругления углов ( I975fe , b/428261830 )
Версия 1.0.0-alpha04
7 мая 2025 г.
Выпущены androidx.xr.compose:compose:1.0.0-alpha04 и androidx.xr.compose:compose-testing:1.0.0-alpha04 . Версия 1.0.0-alpha04 содержит следующие коммиты .
Новые функции
- Добавлен интерфейс
CompositionLocalConsumerSubspaceModifierNode, позволяющий пользовательским типамSubspaceModifierполучать доступ к локальным значениям композиции. - Добавлен новый API
SpatialPanel, который соответствует стилю реализации ComposeAndroidViewи является устаревшим для предыдущегоViewBased SpatialPanel. - Добавлен сопутствующий объект
VolumeConstraints.Unbounded, представляющий неограниченные ограничения. - Добавлена
SubspaceModifier.onPointSourceParamsдля обеспечения возможности использования пространственного источника звука. - Добавлен общедоступный
ApplicationSubspace, предлагающий необязательные значенияVolumeConstraintsдля определения трехмерной области, в которой приложение может отображать пространственный контент. По умолчанию, если ограничения не указаны, Subspace будет ограничен по ширине и высоте текущим полем зренияSpatialUser. Пользователи могут указать ограничения, которые будут использоваться, если поле зрения определить невозможно. В противном случае используются значения ширины и высоты поля зрения по умолчанию. - Добавлена
SpatialExternalSurface, которую можно использовать для рендеринга стереоскопического контента.SpatialExternalSurfaceнастраивается с помощью модификаторов (кроме альфа-канала) и эффекта сглаживания краев. - Добавлен новый модификатор подпространства
pointerHoverIcon, позволяющий пользователям устанавливать значок для пространственного указателя.
Изменения в API
- Снято ограничение
RequiresApi(34)для всех пакетов Jetpack XR. Это ограничение было излишним, поскольку Jetpack XR в настоящее время доступен только на устройствах с уровнем API 34 и выше. ( Iae0f8 ) - Для использования проектов, выпущенных с Kotlin 2.0, требуется KGP 2.0.0 или более поздняя версия. ( Idb6b5 )
- Теперь функция возврата будет работать на пространственных панелях без встроенных активностей. Для корректной работы функции возврата необходимо указать
android:enableOnBackInvokedCallback="true"в манифесте Android. - Теперь обработка обратных вызовов будет работать для пространственных диалогов. Для корректной работы обработки обратных вызовов необходимо указать
android:enableOnBackInvokedCallback="true"в манифесте Android. - Теперь панели
SpatialPanelсоздаваемые с помощью Compose и View, могут изменять свой размер в зависимости от содержимого. - Теперь разработчики могут устанавливать собственные значения
SpatialElevationLevelи не ограничены предопределенными уровнями. - Теперь уровень высоты орбитального аппарата можно настроить с помощью параметра
elevation. - Теперь подпространство по умолчанию может быть ограничено по ширине и высоте полем зрения
SpatialUser. Если поле зрения определить невозможно, используются значения ширины и высоты поля зрения по умолчанию. - Добавлены новые функции обратного вызова
onMoveStartиonMoveEndк модификаторуMovable. ФункцииonMoveStartиonMoveEndвызываются, когда пользователь начинает и заканчивает перемещение подпространства, компонуемого с помощью модификатора movable. - Параметр
nameбыл удален из пространственных API, таких какSpatialRowиSpatialPanel. Для отладки пространственных деревьев компоновки используйте вместо негоSubspaceModifier.testTag. - Удалена неподдерживаемая перегрузка
SpatialPopup, которая содержит толькоspatialElevationLevelиcontent. Пожалуйста, используйте интерфейс, поддерживающийonDimissRequest. - Функция обратного вызова
onPoseChangeиз модификатора Movable удалена. Используйте вместо неёonMove. -
SubspaceModifiersперестанут оказывать своё воздействие, если они отсоединены или отсоединяются в данный момент. - Существующий API
SpatialRowбыл разделён наSpatialRowиSpatialCurvedRow. Если ранее использовался параметрcurveRadiusизSpatialRow, теперь вместо него следует использоватьSpatialCurvedRow, который обеспечивает аналогичное поведение. - В системах с относительно свежим образом системы панели
MainPanelиActivityPanelбольше не отображают заголовки окон. - Модификаторы альфа-канала и масштаба теперь суммируются и будут умножать свои значения для получения конечного значения альфа-канала или масштаба.
- Функция обратного вызова
onPoseChangeиз модификатора Movable была оптимизирована для более плавного изменения позы. - Теперь модификаторы, изменяемые по размеру и перемещаемые, будут выполнять свои обратные вызовы в основном потоке, чтобы гарантировать, что изменения состояния будут вызывать перекомпозицию.
- Добавлено отслеживание состояния на этапах компоновки и измерения, чтобы гарантировать, что изменения состояния в
SubspaceLayoutбудут запускать процесс перестановки. - Оптимизированы обновления цепочки модификаторов для более эффективного повторного использования существующих модификаторов.
Исправлены ошибки
- Игра прекращается при появлении диалогового окна
SpatialDialog. ( Ic4594 ) - Запросы на переадресацию, отправленные во время отсоединения узлов-модификаторов, теперь будут игнорироваться.
- Удалены фазы перераспределения нагрузки, запускаемые модификаторами Movable и Resizable.
- Исправлена ошибка, приводившая к сбою в функции
MainPanel(), которая возникала при обнулении любого из измерений, либо напрямую, либо во время вычисления компоновки, например, при вычисленииSpatialRow/SpatialColumn. Теперь панель будет скрыта. Обратите внимание, что это исправление касается именно сбоев на этапе компоновки; изменение размера панели до нуля с помощью взаимодействия с пользователем будет обрабатываться отдельно. Скрытая панель не имеет элементов пользовательского интерфейса. - Исправлена ошибка, связанная с
maintainAspectRatioиз модификатора resizable. Теперь соотношение сторон должно сохраняться. - Исправлена ошибка, связанная с вложенными подпространствами, из-за которой они неправильно позиционировались в течение одного кадра.
- Исправлена ошибка, из-за которой скругленные углы иногда не применялись, хотя должны были.
-
NestedSubspacesбольше не будут отображаться в неправильном месте в течение одного кадра.
Версия 1.0.0-alpha03
26 февраля 2025 г.
Выпущены androidx.xr.compose:compose:1.0.0-alpha03 и androidx.xr.compose:compose-testing:1.0.0-alpha03 без существенных изменений по сравнению с последней альфа-версией. Версия 1.0.0-alpha03 содержит следующие коммиты
Версия 1.0.0-alpha02
12 февраля 2025 г.
Выпущены androidx.xr.compose:compose:1.0.0-alpha02 и androidx.xr.compose:compose-testing:1.0.0-alpha02 . Версия 1.0.0-alpha02 содержит следующие коммиты .
Новые функции
- Теперь панель действий может отображать свое содержимое при активации пространственного диалога.
- API
Orbiterтеперь можно использовать в контекстахSubspaceComposable, и он будет прикреплять Orbiter к ближайшему родительскому объекту, основанному наSubspaceLayout. - Введена
LayoutCoordinatesAwareModifierNode, позволяющая создавать пользовательские модификаторы на основе позиционирования. - Добавлены методы жизненного цикла attach/detach в
SubspaceModifier.Node. - Добавлена
scaleWithDistanceк модификатору movable. При включенииscaleWithDistanceперемещаемый элемент подпространства будет увеличиваться или уменьшаться. При этом он сохранит любой заданный масштаб, который был у него до перемещения.
Изменения в API
- Заменен
SessionCallbackProviderнаSpatialCapabilities.
Другие изменения
-
minSDKуменьшен до 24. Все API Jetpack XR по-прежнему требуют API 34 во время выполнения. - Конструкторы
OrbiterEdgeOffset.inner,EdgeOffset.outerиEdgeOffset.overlapбольше не являются методами@Composable, что позволяет использовать их в контекстах, не допускающих компонуемость. - Обновите пространственные уровни высоты в соответствии с последними требованиями к пользовательскому интерфейсу.
- Реализуйте интерфейс
SubspaceSemanticsInfoвMeasurableLayout. - Переименован
SubspaceModifierElementвSubspaceModifierNodeElement.
Исправлены ошибки
- Исправлены ошибки, стабилизирующие порядок использования
SubspaceModifier. РаботаSubspaceModifierдолжна быть более надежной. Модификаторы Offset, rotate, scale, movable и resizable теперь можно использовать в любом порядке.
Версия 1.0.0-alpha01
12 декабря 2024 г.
Выпущена версия androidx.xr.compose:compose-*1.0.0-alpha01 .
Особенности первоначального выпуска
Первый релиз Jetpack Compose для XR для разработчиков. Используйте знакомые концепции Compose, такие как строки и столбцы, для создания пространственных макетов пользовательского интерфейса в XR, независимо от того, переносите ли вы существующее 2D-приложение в XR или создаете новое XR-приложение с нуля. Эта библиотека предоставляет подпространственные и пространственные компонуемые элементы: такие как пространственные панели и орбитеры, которые позволяют размещать существующий 2D-интерфейс Compose или интерфейс на основе Views в пространственном макете. Она представляет компонуемый элемент подпространства Volume, который позволяет размещать объекты SceneCore, такие как 3D-модели, относительно вашего пользовательского интерфейса. Подробнее см. в этом руководстве для разработчиков :
Subspace: Этот компонуемый элемент можно разместить в любом месте иерархии пользовательского интерфейса вашего приложения, что позволяет сохранять макеты для 2D и пространственного интерфейса без потери контекста между файлами. Это упрощает обмен такими элементами, как существующая архитектура приложения, между XR и другими форм-факторами без необходимости переносить состояние по всему дереву пользовательского интерфейса или перестраивать архитектуру приложения.SpatialPanel : Пространственная панель — это компонуемый подпространство, позволяющее отображать контент приложения — например, воспроизведение видео, статичные изображения или любой другой контент в пространственной панели.
Orbiter : Orbiter — это пространственный компонент пользовательского интерфейса. Он предназначен для прикрепления к соответствующей пространственной панели и содержит элементы навигации и контекстных действий, связанных с этой пространственной панелью. Например, если вы создали пространственную панель для отображения видеоконтента, вы можете добавить элементы управления воспроизведением видео внутрь Orbiter.
Volume : Размещайте объекты SceneCore, такие как 3D-модели, относительно вашего пользовательского интерфейса.
Spatial Layout: You can create multiple spatial panels and place them within a Spatial Layout using
SpatialRow,SpatialColumn,SpatialBox, andSpatialLayoutSpacer. UseSubspaceModifiers to customize your layout.Spatial UI components: These elements can be reused in your 2D UI, and their spatial attributes will only be visible when spatial capabilities are enabled.
-
SpatialDialog: Panel will push slightly back in z-depth to display an elevated dialog. -
SpatialPopUp: Panel will push slightly back in z-depth to display an elevated popup -
SpatialElevation:SpatialElevationLevelcan be set to add elevation.
-
SpatialCapabilities: Spatial capabilities can change as users interact with your app or the system, or can even be changed by your app itself—for example, moving into Home Space or Full Space. To avoid issues, your app needs to check for
LocalSpatialCapabilities.currentto determine which APIs are supported in the current environment.isSpatialUiEnabled: Spatial UI elements (eg SpatialPanel)isContent3dEnabled: 3D objectsisAppEnvironmentEnabled: The environmentisPassthroughControlEnabled: Whether or not the application can control the passthrough stateisSpatialAudioEnabled: Spatial audio
Известные проблемы
- Currently a minSDK of 30 is required to use Jetpack Compose for XR. As a workaround you may add the following manifest entry
<uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>to be able to build and run with a minSDK of 23. - Jetpack XR apps currently require requesting
android.permission.SCENE_UNDERSTANDINGpermission in the AndroidManifest. - When an app launches directly into Full Space using the
PROPERTY_XR_ACTIVITY_START_MODEproperty in their manifest, Activities/Applications are initially opened in Home Space before transitioning into Full Space. - glTFs in Volume Composables may initially flicker at the wrong location.
- Using a SpatialDialog in a panel that has been moved significantly will push the content in the wrong direction.