Jetpack Compose для XR

Создавайте декларативные пространственные макеты пользовательского интерфейса, использующие пространственные возможности Android XR.
Последнее обновление Стабильный релиз Предварительная версия для выпуска Бета-версия Альфа-версия
28 января 2026 г. - - - 1.0.0-alpha10

Объявление зависимостей

Чтобы добавить зависимость от XR Compose, необходимо добавить репозиторий Google Maven в ваш проект. Для получения дополнительной информации ознакомьтесь с информацией в репозитории Google Maven .

Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:

классный

dependencies {
    implementation "androidx.xr.compose:compose:1.0.0-alpha10"

    // Use to write unit tests
    testImplementation "androidx.xr.compose:compose-testing:1.0.0-alpha10"
}

Котлин

dependencies {
    implementation("androidx.xr.compose:compose:1.0.0-alpha10")

    // Use to write unit tests
    testImplementation("androidx.xr.compose:compose-testing:1.0.0-alpha10")
}

Для получения дополнительной информации о зависимостях см. раздел «Добавление зависимостей сборки» .

Обратная связь

Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав кнопку со звездочкой.

Создать новую задачу

Для получения более подробной информации см. документацию по системе отслеживания ошибок .

Версия 1.0

Версия 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() стали частью API SpatialPanel и SpatialExternalSurface ( I397bf , b/437924639 ).
  • Добавлена ​​поддержка LayoutDirection в пространственных макетах. Теперь при использовании SpatialAlignment элементы будут корректно располагаться как в контекстах LTR, так и RTL. ( I964bb , b/436300273 )
  • Добавьте параметры Resizable и Movable в API Panel , чтобы гарантировать, что эти свойства могут применяться только к поддерживаемым контейнерам. ( Id491c )
  • Добавлены SubspaceModifiers sizeIn , 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 )
  • Два новых компонента SpatialExternalSurface Composable, представляющие сферы с углом обзора 180 и 360 градусов. ( I40ef2 , b/391705799 )
  • Добавлен SubspaceModifier.aspectRatio ( Ide5ab , b/399729509 , b/414762147 )
  • Добавлен API SceneCoreEntity для улучшения взаимодействия между SceneCore и Compose for XR. ( I50bb3 , b/423020989 )
  • Предоставлен API GravityAlignedsubspace для поддержки функции Unscaled And GravityAligned ( 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 , который соответствует стилю реализации Compose AndroidView и является устаревшим для предыдущего 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 во время выполнения.
  • Конструкторы Orbiter EdgeOffset.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-модели, относительно вашего пользовательского интерфейса.

  • Пространственная компоновка: Вы можете создать несколько пространственных панелей и разместить их внутри пространственной компоновки, используя SpatialRow , SpatialColumn , SpatialBox и SpatialLayoutSpacer . Используйте SubspaceModifier для настройки компоновки.

  • Пространственные компоненты пользовательского интерфейса: эти элементы можно повторно использовать в двухмерном пользовательском интерфейсе, и их пространственные атрибуты будут видны только при включении пространственных возможностей.

    • SpatialDialog : Панель немного сдвинется назад по оси Z, чтобы отобразить диалоговое окно с приподнятой панелью.
    • SpatialPopUp : Панель немного сдвинется назад по оси Z, чтобы отобразить всплывающее окно, расположенное выше.
    • SpatialElevation : SpatialElevationLevel позволяет добавить отметку высоты.
  • SpatialCapabilities: Пространственные возможности могут изменяться по мере взаимодействия пользователей с вашим приложением или системой, или даже могут изменяться самим приложением — например, при переходе в «Домашнее пространство» или «Полное пространство». Во избежание проблем вашему приложению необходимо проверять LocalSpatialCapabilities.current , чтобы определить, какие API поддерживаются в текущей среде. isSpatialUiEnabled : Пространственные элементы пользовательского интерфейса (например, SpatialPanel) isContent3dEnabled : 3D-объекты isAppEnvironmentEnabled : Среда isPassthroughControlEnabled : Может ли приложение управлять состоянием сквозной передачи isSpatialAudioEnabled : Пространственный звук

Известные проблемы

  • В настоящее время для использования Jetpack Compose для XR требуется minSDK 30. В качестве обходного пути вы можете добавить следующую запись в манифест <uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/> , чтобы иметь возможность собирать и запускать приложение с minSDK 23.
  • В настоящее время приложения Jetpack XR требуют запроса разрешения android.permission.SCENE_UNDERSTANDING в AndroidManifest.
  • Когда приложение запускается непосредственно в Full Space с помощью свойства PROPERTY_XR_ACTIVITY_START_MODE в своем манифесте, действия/приложения изначально открываются в Home Space, прежде чем перейти в Full Space.
  • В компонентах, компонуемых по объему, сигналы glTF могут изначально мерцать в неправильном месте.
  • Использование SpatialDialog в панели, которая была значительно перемещена, приведет к смещению содержимого в неправильном направлении.