Jetpack Compose für XR
| Letzte Aktualisierung | Stabile Release | Releasekandidat | Beta-Release | Alpha-Release |
|---|---|---|---|---|
| 21. Oktober 2026 | - | - | 1.0.0-beta02 | - |
Abhängigkeiten deklarieren
Für eine Abhängigkeit von XR Compose musst du deinem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Google-Repository bei Maven.
Fügen Sie die Abhängigkeiten für die benötigten Artefakte in der Datei build.gradle für Ihre App oder Ihr Modul hinzu:
Cool
dependencies { implementation "androidx.xr.compose:compose:1.0.0-beta02" // Use to write unit tests testImplementation "androidx.xr.compose:compose-testing:1.0.0-beta02" }
Kotlin
dependencies { implementation("androidx.xr.compose:compose:1.0.0-beta02") // Use to write unit tests testImplementation("androidx.xr.compose:compose-testing:1.0.0-beta02") }
Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.
Feedback
Ihr Feedback hilft uns, Jetpack zu verbessern. Wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben, lassen Sie es uns wissen. Bevor Sie ein neues Problem erstellen, sollten Sie sich jedoch die bereits gemeldeten Probleme in dieser Bibliothek ansehen. Wenn Sie sich einer Problemmeldung anschließen möchten, klicken Sie auf den Button mit dem Stern.
Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.
Version 1.0
Version 1.0.0-beta02
21. Oktober 2026
androidx.xr.compose:compose:1.0.0-beta02 und androidx.xr.compose:compose-testing:1.0.0-beta02 sind veröffentlicht. Version 1.0.0-beta02 enthält diese Commits.
API-Änderungen
- Bibliotheken sind jetzt auf Kotlin 2.2 ausgerichtet und erfordern kotlinc 2.2 (I82396, b/498369605).
- Der Parameter
halfLifeMsvonFollowMode.soft()wurde inhalfLifeMillisumbenannt. (I39187) PitchLimitswurde in ein@JvmInline value classkonvertiert, wobei zwei Gleitkommazahlen in einLonggepackt wurden, um Objektzuweisungen zu vermeiden. (Id43c3)- Neuer Parameter für
FollowMode.softhinzugefügt:halfLifeMs,startDelayundstartThresholds. Der ParameterdurationMswurde entfernt, da er für die Umstellung vomsmoothStep-Algorithmus auf denexponentialDecay-Algorithmus nicht mehr benötigt wird. (If0140) - Entfernen Sie die verworfene Überladung
SpatialActivityPanel. Verwenden Sie stattdessen die Überladung vonSpatialActivityPanel, die einSpatialActivityPanelControllerakzeptiert. (I5abc3) - Übergänge zwischen 3D- und 2D-Composable-Inhalten innerhalb einer Aktivität in
FullSpaceModeaktivieren. Diese Änderung wird durchSpatialComposeFlags.isMainPanelResetOnSubspaceDisposeEnabledgesteuert. (I4e237) - Es wurde eine experimentelle
Subspace-Überladung mit einemFollowTarget-Parameter hinzugefügt, um das Folgen von Inhalten zu unterstützen. (Iec1a9) - Entfernen Sie veraltete verschiebbare Modifikatoren. Verwenden Sie stattdessen den neuen Modifikator „movable“, der den neuen
MovePolicyals Parameter akzeptiert. (Ib135d) - Entfernen Sie das verworfene
DragPolicy. Verwenden Sie stattdessenSubspaceModifier.movable(). (I108d4) - Die zustandslosen Überladungen
SliderundRangeSliderwurden zugunsten ihrer zustandsorientierten Versionen eingestellt.activeRangeStartundactiveRangeEndinRangeSliderStatewurden instartValueundendValueumbenannt. Ältere, nicht hochgestufte und experimentelle Slider APIs wurden mitDeprecationLevel.HIDDENeingestellt. (If8995)
Fehlerkorrekturen
RotateToLookAtUserwurde behoben, indemposeInActivitySpaceeingeführt wurde, um eine korrekte Positionsberechnung für alle Unterraumtypen zu gewährleisten, einschließlich derer, die an Ankern oder Nutzern angehängt sind.Ica367b- Absturz von Constraints behoben, wenn Orbiter an großen Steuerfeldern angebracht ist (I8c4bf)
- Ein Fehler in
SubspaceLayoutNodewurde behoben, bei demremoveAll()zu unnötigenArrayList-Zuweisungen führte. Außerdem wurde die Leistung der Tiefenberechnung verbessert. I34a10a - Die Abhängigkeit
androidx.lifecycle:lifecycle-runtimewurde auf 2.10.0 aktualisiert. Diese Version ist erforderlich, damit die gebündelten Lint-Prüfungen für die Lebenszyklus-Laufzeit mit AGP-Version 9.5.0-alpha04 oder höher ausgeführt werden können. (I99bfd, b/556807521) - Die kdocs im Zusammenhang mit
AudioOutputProviderwurden verbessert, um hervorzuheben, dass sie nicht mit mehrerenExoPlayer-Instanzen wiederverwendet werden sollten (I6b18e). - Kleinere Rechtschreib- und Grammatikfehler in kdoc behoben (Id3ba6)
Bekannte Probleme
- Diese Version von
androidx.xr.composeist vonandroidx.xr.scenecore:1.0.0-rc01abhängig, das ein bekanntes Speicherleck hat. In Ihrer Build-Konfiguration können Sie die AbhängigkeitSceneCoreexplizit mit Version1.0.0überschreiben, die eine Korrektur für das Speicherleck enthält.
Version 1.0.0-beta01
23. September 2026
androidx.xr.compose:compose:1.0.0-beta01 und androidx.xr.compose:compose-testing:1.0.0-beta01 sind veröffentlicht. Version 1.0.0-beta01 enthält diese Commits.
API-Änderungen
- Verworfenes
DragPolicyentfernt. Verwenden Sie stattdessenSubspaceModifier.movable(). (I108d4) - Die verworfene
ResizePolicyund ihre Verwendungen inSpatialPanelundSpatialExternalSurfacewurden entfernt. Entfernen Sie eine verworfeneSubspaceModifier.resizable-Funktion. Verwenden Sie stattdessen die neueSubspaceModifier.resizablemit einer neuenResizePolicy. (I59e6b) - Der Parameter
isPitchUpdateEnabledwurde hinzugefügt, um das Aktivieren oder Deaktivieren des Pitch-Trackings unabhängig voneinander zu ermöglichen. (Ie9e86) - Die Null-Zulässigkeit von
pitchLimitswurde entfernt undPitchLimits.UNCONSTRAINEDwurde inPitchLimits.FullRangeumbenannt. (I0154f) ExposedDropdownMenuist jetzt eine Erweiterungsfunktion fürExposedDropdownMenuBoxScopeund kein Mitglied mehr. Möglicherweise müssen Sie Ihren Code mit einem neuen Import aktualisieren. (Ie8a65)- Die verworfene Klasse
SurfaceProtectionwurde entfernt. Verwenden Sie stattdessenSpatialExternalSurfaceProtection. (Iab2c6) - Die Orbiter-Funktion, die ein
OrbiterPoseProviderverwendet, wurde zugunsten der Funktion, dieSpatialAlignmentverwendet, eingestellt. (I4d12b) - Für
SpatialActivityPanelist jetzt einSpatialActivityPanelController(mitrememberSpatialActivityPanelControllerinstanziiert) erforderlich, um eingebettete Aktivitäten zu starten und zu verwalten. (Id25c6) - Der Parameter
upDirectionwurde ausrotateToLookAtUserentfernt und es wurden Parameter für Rotationseinschränkungen (isYawUpdateEnabledundpitchLimits) hinzugefügt. (I1370a)
Fehlerkorrekturen
- Verschiedene
InteractionPolicy-Probleme wurden behoben. Es kam zu einem Absturz, wenn ein Eingabeereignis genau dann auftrat, wenn das Composable oder ein untergeordnetes Element (z. B. ein Orbiter) eine Entfernungssequenz initiierte. Außerdem wurde ein Problem behoben, bei dem ein untergeordnetes Element Hover-Ereignisse empfangen hat. (Ifc477) - Die Größe des Bereichs in
RotateToLookAtUserActivitywurde reduziert, um ein Abschneiden auf Geräten mit kleinerem Sichtfeld zu verhindern. (I8d672)
Bekannte Probleme
- Bei Compose XR-Bereichen gibt es ein Problem, bei dem das Erstellen vieler Bereiche in einer einzelnen Aktivität zu einer Beschädigung der angezeigten Inhalte führen kann, auch nachdem die Bereiche gelöscht wurden.
Version 1.0.0-alpha17
12. August 2026
androidx.xr.compose:compose:1.0.0-alpha17 und androidx.xr.compose:compose-testing:1.0.0-alpha17 sind veröffentlicht. Version 1.0.0-alpha17 enthält diese Commits.
API-Änderungen
- Entfernen Sie die Wertklasse
Meter. Sie wird inScenecoredurchvirtualPixelDensityersetzt. (I690ee) - Die
SpatialGltfModelAPI ist jetzt experimentell und muss für die Verwendung aktiviert werden. (I4557e) system-Größenänderung auf Nullable gesetzt (Ib0093)DensityinSubspaceSemanticsInfofür Tests freigegeben. (I2e826)- Standardoption „
ResizePolicy“ in „system“ umbenennen und eine neue Option „Default“ ohne Parameter hinzufügen (Ic8b16) FollowTargetals experimentell markieren. Die gesamteFollowingSubspaceAPI ist jetzt experimentell. (Id4ee3)GltfAnimation-APIs entfernen (Ic2894)- Die parametrisierte Methode
MovePolicy.default()wurde inMovePolicy.system()umbenannt. Das Attributval MovePolicy.Defaultwurde eingeführt, um das standardmäßige Bewegungsverhalten darzustellen. (Iedcc9) ExperimentalMoveAnchorPolicy-Opt-in-Anforderungen aufPlaneSemanticundPlaneOrientationerweitert (Ief927)resetMinsausVolumeConstraints.offsetentfernen (Ib2f2f)- Die verworfene Funktion
SceneCoreEntitySizeAdapterwurde entfernt. (Ib6722) - Veraltete
Subspace-Überladung mitallowUnboundedSubspaceentfernt. (I8e97f) - Die veraltete Überladung des Semantikmodifikators wurde entfernt. (I4ac10)
Fehlerkorrekturen
- Ein Problem wurde behoben, bei dem untergeordnete Elemente eines
Composablemit einem angehängtenInteractionPolicyEingabeereignisse auslösen (Icdba6).
Version 1.0.0-alpha16
15. Juli 2026
androidx.xr.compose:compose:1.0.0-alpha16 und androidx.xr.compose:compose-testing:1.0.0-alpha16 sind veröffentlicht. Version 1.0.0-alpha16 enthält diese Commits.
API-Änderungen
ComponentOverride-APIs entfernen (I820c4)- Die APIs
GltfAnimationundSpatialGltfModelAnimationwurden als experimentell gekennzeichnet. Einige Properties wurden in Getter umgewandelt. (I8d689, b/524771027) - Das allgemeine Verhalten der Dichte wurde korrigiert, indem die Umrechnung zwischen Metern und Pixeln konstant gehalten wird. Meter.kt wurde eingestellt.
Session.scene.virtualPixelDensitykann jetzt als Alternative verwendet werden. (I122ff, b/430097855, b/474168798) - Der Modifikator „resizable“ wurde aktualisiert, sodass jetzt ein
ResizePolicyanstelle von zwei Modifikatoren verwendet wird (I7fb0f, b/496257436, b/519672992). - Der Parameter
Dp = Dp(0.5f)wurde allen öffentlichen Gleitkomma-Dimensions- und Positionsgleichheits-Assertions inSubspaceAssertions.kthinzugefügt. Das Standardtoleranzverhalten (0.5.dp) ist vollständig dokumentiert. (I266cb, b/521491915) - Verschiebbare Überladung mit dem Parameter
movePolicyhinzugefügt undtransformingMovableundmovableeingestellt (Ic88c1, b/481781189) - Es wurden neue nicht interaktive Varianten von Standardlistenelementen und segmentierten Listenelementen hinzugefügt, die den Material Expressive-Spezifikationen entsprechen. Die nicht expressive Version wurde eingestellt. (Ide4de, b/491994186)
- Für Subspace wurde der Parameter
allowUnboundedSubspaceeingestellt und ausgeblendet. Unbegrenztes Verhalten sollte jetzt mitSubspaceModifier.requiredSizeIn(maxWidth=Dp.Infinity,maxHeight=Dp.Infinity,maxDepth=Dp.Infinity) im Subspace-Modifikator erreicht werden. Der ParameterallowUnboundedSubspacewurde ausFollowingSubspaceentfernt. (Ia72ae, b/433624021) Session.createwurde in eine Sperrfunktion umgewandelt. (I5d27f)SubspaceModifier.spatializedAudioOutputwurde hinzugefügt, um die Audiowiedergabe überExoPlayeroderSoundEffectPlayerzu verräumlichen (I46697, b/489421980, b/497867019)ComponentActivity.requestHomeSpace()undrequestFullSpace()wurden aktualisiert, umSpaceRequestResultfür die Statusbestätigung zurückzugeben. (If1672)AnchorEntitywurde inAnchorSpaceumbenannt (Ifa95e, b/513619219).- Uneingeschränkte
fromResource-Methode vonSpatialGltfModelSource(I1f5a1, b/503047416) SubspaceSemanticsMatcher-Mitglieder sind öffentlich: die Propertydescription, Companion-Factory-Methoden (expectValue,keyIsDefined,keyNotDefined), Mitgliedsfunktionen (matches,matchesAny) und Operatoren (and,or,not). (I972a4, b/460427288)SubspaceModifier.semantics,SubspaceModifier.testTag,SubspaceSemanticsInfoundSubspaceSemanticsModifierNodewurden aktualisiert, um ausgewählte räumliche Semantiktypen zu verwenden. (I80dea, b/460427288)positionwurde inSpatialAlignmentinalignumbenannt und die einzelnen Methoden für den Richtungsoffset wurden zugunsten einer einheitlichenalign-API entfernt. (I9bdb2, b/479805937)- Veraltete Space-Modus-APIs aus
SpatialConfigurationentfernt. (I1ef5c, b/458712461) SubspaceSemanticsConfigurationeingeführt. Dies ist eine Konfiguration von Semantikattributen für einen räumlichen Knoten. Diese Klasse stellt Abfragemethoden für 3D-Semantik sicher bereit, ohne dass grundlegende 2D-Semantikfunktionen für externe Nutzer offengelegt werden. (Id025e, b/460427288)SubspaceSemanticsPropertyReceiverwurde eingeführt: ein dedizierter Wrapper, der die Eigenschaften von 3D-Layoutcontainern auf gültige Felder beschränkt (anfänglichtestTagundcontentDescription). (I5cf5c, b/460427288)
Fehlerkorrekturen
- Der
hasContentDescriptiondes semantischen Modifikators wurde aktualisiert, sodass standardmäßig der Teilstringabgleich verwendet wird. (I08214) - Eingeschränkter
FollowBehavior.ExponentialDecay()hinzugefügt, der ein weiches Folgen ermöglicht, das von elastischer Physik gesteuert wird. (I7449c, b/485639909, b/500493335)
Die meisten APIs sind davon betroffen. Konkret werden die LocalSession CompositionLocal und alle CompositionLocals, die von LocalSession abhängig sind (z.B. LocalSpatialConfiguration, LocalSpatialCapabilities usw.), jetzt zu null oder den Nicht-XR-Versionen aufgelöst, bevor die Session initialisiert wird.
Sobald Session verfügbar ist, wird die Neuzusammensetzung mit dem richtigen Status ausgelöst. (I0cfa4, b/514712835, b/514712835)
- Die Dokumentation für
ComponentActivity.requestHomeSpaceundComponentActivity.requestFullSpacewurde in Bezug auf das Verhalten bei Sperrung, Kündigung und Gleichzeitigkeit überarbeitet. Tests zur Überprüfung derCancellationException-Weitergabe wurden aktualisiert. (I22f75, b/493289528)
Version 1.0.0-alpha15
17. Juni 2026
androidx.xr.compose:compose:1.0.0-alpha15 und androidx.xr.compose:compose-testing:1.0.0-alpha15 sind veröffentlicht. Version 1.0.0-alpha15 enthält diese Commits.
API-Änderungen
ResizePolicyund der alte Modifikator für die Größenänderung wurden eingestellt und durch eine neueSubspaceModifier.resizable-Überladung undSubspaceModifier.transformingResizableersetzt. (I9e4bc)- Aktualisierte
SpatialGltfModelAPIs: Unterstützung für das Laden von Modellen aus Ressourcen überSpatialGltfModelSource.fromResourcehinzugefügt. Geschwindigkeit inSpatialGltfModelAnimationinplaybackSpeedumbenannt und eine resume()-Methode hinzugefügt.SpatialGltfModelStatus.Loaded und Loading sind jetzt Objekte. (I523de) rotateToLookAtUserwurde als experimentelle API markiert. (I86c16)- Die geschützte Variable
targetCurrentPosewurde verschoben und in die lokale VariablecurrentTargetPoseMeterumbenannt. (Ia557c) - KDocs für
SpatialPanelundSpatialExternalSurfaceaktualisiert, um anzugeben, wo das Objekt innerhalb seiner Layoutgröße gerendert wird (I72104) - Die Ladelogik für
SpatialGltfModelwurde inSpatialGltfModelStategekapselt und das Verhalten bei Fehlern wurde verdeutlicht. (Ibe98b) depthinSubspaceModifer.size-KDocs wurde näher beschrieben (I0f84f)
Version 1.0.0-alpha14
19. Mai 2026
androidx.xr.compose:compose:1.0.0-alpha14 und androidx.xr.compose:compose-testing:1.0.0-alpha14 sind veröffentlicht. Version 1.0.0-alpha14 enthält diese Commits.
API-Änderungen
transformingMovablefür die standardmäßige, vom System verarbeitete 3D-Bewegung und eine neue Überladung fürmovablezur Verarbeitung benutzerdefinierter Bewegungsverhaltensweisen eingeführt. (I50960)- "
SpatialGltfModel.fromData()" wurde entfernt. (I4d083) - Es wurde eine neue Modifikator-Knotenschnittstelle,
SubspaceMeasuredSizeAwareModifierNode, hinzugefügt, die nach dem Messdurchlauf einenonRemeasured-Callback bereitstellt.SubspaceLayoutAwareModifierNodeerweitert jetzt diese neue Schnittstelle. Der ModifikatoronSizeChangedwurde aktualisiert und verwendet jetztonRemeasured. Dadurch wird der Callback direkt nach der Messung und nicht nach der Platzierung ausgelöst. (Iafbae) InteractionPolicywurde aufInterfaceaktualisiert (I0ff30)- Compose
compileSdkwurde auf API 37 aktualisiert. Das bedeutet, dass bei der Verwendung von Compose mindestens die AGP-Version 9.2.0 erforderlich ist. (Id45cd) Sizekdocs aktualisiert (Iefa9a)
Version 1.0.0-alpha13
6. Mai 2026
androidx.xr.compose:compose:1.0.0-alpha13 und androidx.xr.compose:compose-testing:1.0.0-alpha13 sind veröffentlicht. Version 1.0.0-alpha13 enthält diese Commits.
API-Änderungen
- Für die Orbiter API stehen weitere Änderungen an. Wir empfehlen, die Einstellungsbenachrichtigungen für Orbiter zu unterdrücken und in zukünftigen Releases auf Orbiter-Änderungen zu achten.
- Wenn Sie
SceneCoreEntityzum Rendern von glTFs verwenden, müssen Siesession.scene.activitySpacean den ParameterparentdesGltfModel.create-Aufrufs übergeben, damit die glTFs gerendert werden. - Die
SpatialGltfModelAPI wird hinzugefügt, damit Entwickler ihren Compose for XR-Apps Gltfs hinzufügen können. Entwickler können auch Animationen und Knoten in ihren Gltf-Modellen abfragen. (I8b542, b/495422586) SceneCoreEntitySizeAdapterwird von einer Klasse in eine Schnittstelle geändert (I5a784, b/475292310)SurfaceProtectionwurde inSpatialExternalSurfaceProtectionumbenannt.SpatialExternalSurfacekdocs aktualisiert (Ifad0a, b/485231082)currentWindowAdaptiveInfowird eingestellt und Version 2 eingeführt (I40ecf, b/424442112)- Der Modifikator
resizableist jetzt öffentlich und kann auf Gruppen angewendet werden (z.B.SpatialRow). (I2bcf6, b/348483527, b/489753178, b/479530787) - Der Modifikator
movableist jetzt öffentlich. Dieser Modifikator funktioniert derzeit gut fürSpatialPanelsundSpatialExternalSurface. Er soll jedoch für alleSubspaceComposablesgut unterstützt werden. (I9a3cd, b/479530787, b/478935063, b/478935063) SpatialEnterTransitionundSpatialExitTransitionals@Immutablemarkiert (If1710, b/487757837)- Die
SpatialGltfModelAPI ist für diesen Release als eingeschränkt gekennzeichnet, da zusätzliche Tests ausstehen. (Ibf003, b/466090694) DeviceTrackingMode.LAST_KNOWNwurde inSPATIAL_LAST_KNOWNumbenannt (mit einem verworfenen Fallback),INERTIAL_LAST_KNOWNwurde für das 3DoF-Tracking hinzugefügt undTRACKING_DEGRADEDwurde zuTrackingStatehinzugefügt. (Ie661c, b/445466590)- Entfernen des verworfenen
SpatialLayoutSpacer(I7b36c) - Entfernen der verworfenen Padding API (If1886)
floatRangewurde zu den Bias-Werten hinzugefügt. Standardwert fürLayoutDirectionentfernt (I9d74e)
Fehlerkorrekturen
- Codebeispiele und KDoc-Dokumentation für
SpatialColumn,SpatialRowundSpatialCurvedRowhinzugefügt. (Iaf54f, b/495777633)
Version 1.0.0-alpha12
25. März 2026
androidx.xr.compose:compose:1.0.0-alpha12 und androidx.xr.compose:compose-testing:1.0.0-alpha12 sind veröffentlicht. Version 1.0.0-alpha12 enthält diese Commits.
API-Änderungen
- Fügen Sie die
SpatialGltfModelAPI und dieSpatialGltfModelAnimationAPIs hinzu, um glTFs zu rendern und Animationen zu steuern.SpatialGltfModelStatewurde inAutoCloseablegeändert und muss jetzt geschlossen werden, um die Ressourcen freizugeben. (I11fde, b/466065486, b/481379924). DieSpatialGltfModelAPI ist jedoch für diesen Release als eingeschränkt gekennzeichnet, da zusätzliche Tests ausstehen. (Ibf003, b/466090694) - Eine verworfene leere Überladung für
SubspaceModifier.rotatewurde hinzugefügt. (Idceb6) - Die Funktion
SpatialSmoothFeatheringEffectwurde inspatialSmoothFeatheringEffectumbenannt und in ein Draw-Modul verschoben. Der Standardwert für die weiche Auswahlkante vonSpatialExternalSurfacewurde auf „null“ aktualisiert, was der alten ZeroFeatheringEffect-Funktion entspricht. (I5fdaa, b/460426800) onPointSourceParamsAvailablewurde entfernt. In naher Zukunft wird eine andere API für die Audioräumlichkeit verfügbar sein. (I86507, b/458513439)- RTL-Verhalten für Offset-Subspace-Modifikatoren hinzugefügt. Außerdem wurde
absoluteOffsethinzugefügt, um die Layoutrichtung zu ignorieren. (I30e4b, b/474409165)
Version 1.0.0-alpha11
25. Februar 2026
androidx.xr.compose:compose:1.0.0-alpha11 und androidx.xr.compose:compose-testing:1.0.0-alpha11 sind veröffentlicht. Version 1.0.0-alpha11 enthält diese Commits.
Neue Funktionen
- Parameter
SuperSamplingwird zuSpatialExternalSurfaceshinzugefügt (Icd4d1)
Bekannte Probleme
- Ein Problem mit
SurfaceEntityin SceneCore kann dazu führen, dass Apps beim Erstellen von Instanzen vonSpatialExternalSurfaceabstürzen. Dieses Problem wurde inandroidx.xr.scenecore:scenecore-*:1.0.0-alpha13,androidx.xr.compose:compose:1.0.0-alpha12und nachfolgenden Releases behoben. Betroffene Apps sollten auf die neuesten Versionen aktualisiert werden.
API-Änderungen
- Änderungen am Padding des Subspace-Modifikators für die Berücksichtigung der Layoutrichtung. (I53e25)
SpatialCapabilitiesist jetzt versiegelt und kann nicht verlängert werden. (I07aef)- Die APIs
SpatialRowundSpatialColumn, die einen generischenSpatialAlignment-Parameter akzeptieren, wurden verworfen. Verwenden Sie stattdessen die APIs, die entwederverticalAlignmentoderhorizontalAlignmentfürSpatialRowbzw.SpatialColumnakzeptieren. (Iec390) - Kombination von überladenen
SubspaceLayout-Funktions-APIs (Idd30a) SubspaceModifier.lookAtUserwurde inrotateToLookAtUserund der ParameterupinupDirectionumbenannt. (Icafb8)SpatialRowwird zu einer Inline-Funktion (Ia2f20)SpatialColumnwurde zu einer Inline-Funktion gemacht (I681be)- Billboard API entfernt (Ib76cd)
Version 1.0.0-alpha10
28. Januar 2026
androidx.xr.compose:compose:1.0.0-alpha10 und androidx.xr.compose:compose-testing:1.0.0-alpha10 sind veröffentlicht. Version 1.0.0-alpha10 enthält diese Commits.
API-Änderungen
- Entfernen der verworfenen API –
ApplicationSubspace(Ia6596, b/468345186) SpatialShapewurde zu einer versiegelten Schnittstelle aktualisiert (I7e3f5, b/460426800).- Entfernen verworfener APIs in
SpatialAlignment. (Ib0b61, b/468011887) SpatialLayoutSpacerwird eingestellt undSpatialSpacereingeführt. (I2ebf3, b/466071383)- Die
UserSubspaceAPI wurde aktualisiert, um den Begriff „Lazy Locking“ durch „Soft Locking“ zu ersetzen. (I9ded1, b/464035984)
Version 1.0.0-alpha09
3. Dezember 2025
androidx.xr.compose:compose:1.0.0-alpha09 und androidx.xr.compose:compose-testing:1.0.0-alpha09 sind veröffentlicht. Version 1.0.0-alpha09 enthält diese Commits.
API-Änderungen
- Hinzufügen von
LookAtUser- und Billboard-Modifikatoren, damit Inhalte immer dem Nutzer zugewandt sind. (I49b99) - Es wurde die Möglichkeit hinzugefügt,
InteractionPolicyaufSpatialExternalSurfacesundSpatialPanelsfestzulegen, um Klicks und andere 3D-Eingabeereignisse zu erkennen. (Iae155) - Überladung des Modifikators für Größe und
requiredSizemit Breite, Höhe und Tiefe als Dp-Werte hinzugefügt. (I92f79) - Die Schnittstelle
ParentLayoutParamsModifiererweitert jetztDelegatableSubspaceNode. (I1a6d4) ApplicationSubspacewurde zugunsten der Subspace API eingestellt.- Das Verhalten der Subspace API wurde geändert, sodass nur ein anwendungsweiter Subspace mit der empfohlenen Position und Skalierung bereitgestellt wird.
- Die
PlanarEmbeddedSubspaceAPI wird eingeführt, um eingebettete Unterbereiche in 2D-Kontexten bereitzustellen. (Id3343)
- Flag
shouldAutoInvalidatezurSubspaceModifier.NodeAPI hinzugefügt. (I93902) - Hinzugefügt:
required(Size|Width|Depth|Height)In APIs, die es Entwicklern ermöglichen, die Größe eines@SubspaceComposableauf einen bestimmten Bereich zu beschränken, wobei die eingehenden Messbeschränkungen des übergeordneten Elements ignoriert werden. (Ifaa78) SubspaceModifier.onSizeChangedwurde hinzugefügt. Damit erhalten Entwickler einen einfachen, fokussierten Callback, um zu reagieren, wenn sich die Größe eines@SubspaceComposableändert. (I994f9)- Die Volume API wurde entfernt. Anstelle der Volume API sollte die
SceneCoreEntityAPI verwendet werden. (I4162b) SubspaceLayoutModifierNode.requestRelayoutininvalidateMeasurement/invalidatePlacementaufteilen. (I14805)- Die
SpatialGltfModelAPI wurde hinzugefügt, mit der Entwickler glTFs in Compose rendern können. (Icc91f) - Die zusammensetzbare API
SpatialGltfModelwurde eingeführt, um glTFs einfach zu rendern (Iade67).
Fehlerkorrekturen
- Ein Layoutfehler in
SceneCoreEntitywurde behoben. Die Einschränkungen sollten jetzt ordnungsgemäß berücksichtigt werden. (I11bb8) - jxr-compose-Module auf
Compile sdk = 34herabgestuft (I2d5db)
Version 1.0.0-alpha08
22. Oktober 2025
androidx.xr.compose:compose:1.0.0-alpha08 und androidx.xr.compose:compose-testing:1.0.0-alpha08 sind veröffentlicht. Version 1.0.0-alpha08 enthält diese Commits.
API-Änderungen
ResizePolicywurde geändert, umonResizeStart,onResizeUpdateundonResizeEndzu akzeptieren. (I7e21f)
Fehlerkorrekturen
- Absturz beim Zerstören einer Aktivität mit einem Subspace verhindern. (I595a1)
Version 1.0.0-alpha07
24. September 2025
androidx.xr.compose:compose:1.0.0-alpha07 und androidx.xr.compose:compose-testing:1.0.0-alpha07 sind veröffentlicht. Version 1.0.0-alpha07 enthält diese Commits.
API-Änderungen
- Verbesserte KDocs für
SpatialMainPanel. (I27b70, b/444467891) SpatialArrangementwurde eingeführt, um untergeordnete Elemente entlang der Hauptachse in 3D-Layouts wieSpatialRowundSpatialColumnanzuordnen. Diese neue API bietet vertraute Anordnungsoptionen aus 2D Compose, darunterStart,End,Center,SpaceBetween,SpaceAroundundSpaceEvenly, mit vollständiger Unterstützung für LTR- und RTL-Layoutrichtungen. (I7db38, b/436289959)- Es wurde eine Basisschnittstelle für
SubspaceModifier.Nodehinzugefügt, um die Typsicherheit und Nutzerfreundlichkeit von Erweiterungsschnittstellen zu verbessern, z. B.CompositionLocalConsumerSubspaceModifierNodeLayoutCoordinatesAwareModifierNodeSubspaceLayoutModifierNodeCoreEntityNode(intern) (Iede00, b/440599394, b/440599394)
- Einschränkung für
SpatialExternalSurfaceaufheben (I33315, b/439646773) - Führen Sie
SubspaceModifierin Subspace-Kompositionen ein und ersetzen Sie den Parameter „constraints“ durchSubspaceModifiermit größenbezogenenSubspaceModifiers. WennallowUnboundedSubspace„true“ ist, können Unterräume weiterhin unbegrenzte Einschränkungen haben. (Ib06e6, b/433331675) - Verschiebbare und in der Größe anpassbare
SubspaceModifierswerden eingestellt, daDragPolicy()undResizePolicy()jetzt Teil derSpatialPanel- undSpatialExternalSurfaceAPI sind (I397bf, b/437924639). - Unterstützung für
LayoutDirectionin räumlichen Layouts hinzugefügt. Bei Verwendung vonSpatialAlignmentwerden Elemente jetzt sowohl in LTR- als auch in RTL-Kontexten korrekt positioniert. (I964bb, b/436300273) - Fügen Sie den
Panel-APIs die Parameter „Resizable“ und „Movable“ hinzu, damit diese Verhaltensweisen nur auf unterstützte Container angewendet werden können. (Id491c) sizeIn,widthIn,heightIn,depthInSubspaceModifierswurden hinzugefügt, mit denen Sie genaue Mindest- und Höchstwerte für Breite, Höhe und Tiefe festlegen können. (I1af09, b/433330761)
Version 1.0.0-alpha06
13. August 2025
androidx.xr.compose:compose:1.0.0-alpha06 und androidx.xr.compose:compose-testing:1.0.0-alpha06 sind veröffentlicht. Version 1.0.0-alpha06 enthält diese Commits.
Fehlerkorrekturen
- Erstellt die
ComposeXrOwnerLocalsneu, wenn der Lebenszyklusinhaber gelöscht wird. (9123ce1)
Version 1.0.0-alpha05
30. Juli 2025
androidx.xr.compose:compose:1.0.0-alpha05 und androidx.xr.compose:compose-testing:1.0.0-alpha05 sind veröffentlicht. Version 1.0.0-alpha05 enthält diese Commits.
Neue Funktionen
- Die Annotationsklasse
SubspaceComposablewurde öffentlich gemacht. (Ic2a34, b/399432430) - Zwei neue
SpatialExternalSurface-Composables, die 180- und 360-Grad-Sphären darstellen. (I40ef2, b/391705799) SubspaceModifier.aspectRatiohinzugefügt (Ide5ab, b/399729509, b/414762147)- Die
SceneCoreEntityAPI wurde hinzugefügt, um die Interoperabilität zwischenSceneCoreund Compose for XR zu verbessern. (I50bb3, b/423020989) GravityAlignedsubspaceAPI zur Unterstützung der unskalierten AndGravityAligned-Funktion bereitgestellt (I07359)
API-Änderungen
SpatialDialog()folgt der Konfiguration fürSpatialDialogProperties.dismissOnBack-maliges Drücken. (Ib453b, b/416797132)- Aktualisieren Sie
minimumPanelDimensionauf eine neue Standardgröße vonDimensions(0.1f, 0.1f, 0.1f), da die Dimension in Metern angegeben wird. (Ib852a) - Unterbereiche und Orbiters behalten jetzt ihren internen Status im Home Space und wenn die App im Hintergrund ausgeführt wird. Im Home Space-Modus richtet Subspace die Szene weiterhin ein, um den Wechsel zum Full Space-Modus vorzubereiten. (I40317, b/416037751)
SpatialDialogsbehält jetzt den Status bei, wenn die App im Hintergrund ausgeführt wird. (I6aa56)ApplicationSubspaceübernimmt jetzt die empfohlene Skalierung und Position vom System. (I4565f, b/418834194)- Eine bessere Fehlermeldung wurde hinzugefügt und der Fehler wird früher ausgelöst, wenn ein
SubspaceComposablein einem Nicht-SubspaceComposable-Kontext verwendet wird. (Iee2ae, b/416484684) ExperimentalSubspaceVolumeApiwird von „Warnung“ auf „Fehler“ aktualisiert, da Warnungen bei der falschen Verwendung von composable APIs oft übersehen werden. (I427aa, b/424864286)- Der Unterraum und
ApplicationSubspacesind jetzt durchrecommendedContentBoxInFullSpaceeingeschränkt. Bisher war es durch das Sichtfeld vonSpatialUsereingeschränkt. (I41015, b/423074142) SpatialElevationwurde aktualisiert, um die Mindestgröße zu verwenden und keine hartcodierte Größe mehr zu verwenden (I2dbe6, b/427785338)- Aktualisierung der Scrim-Anzeige für
SpatialAcitivityPanel, wenn eine Schlüsselvariable geändert wird. (I0f64d, b/427999029) - Entfernen Sie
VolumeConstraints.Unboundedund legen Sie stattdessen die Standardeinschränkungswerte auf den entsprechenden Wert fest. (Ie24ec, b/407938414) SpatialFeatheringSizeist nicht mehr öffentlich (I1c15b, b/399432430)Placeablefür XR wurde inSubspacePlaceableumbenannt, um es vonPlaceablefür Compose zu unterscheiden. (I74874)- Orbiter-Einstellungen werden entfernt und
shouldRenderInNonSpatialwird als neuer Parameter hinzugefügt. Außerdem wird die KlasseEdgeOffsetentfernt undorbiterOffsetTypeals neuer Parameter hinzugefügt, umOrbiter()-Funktionen zu konsolidieren. Außerdem wurdeOrbiterEdgeinContentEdgeumbenannt. (Iebf3d) Measurablewurde inSubspaceMeasurableumbenannt, um den Typ vomMeasurable-Typ von Compose zu unterscheiden. (I9726c)MeasureResultinSubspaceMeasureResultumbenennen (I9f34d)- Die
setSubspaceContentAPI wurde entfernt. Verwenden Sie stattdessensetContentvon Compose mit einerSubspace-Komponierbare Funktion. (Ifff4c, b/421427391, b/421427391) MeasurePolicywird inSubspaceMeasurePolicyumbenannt. (I37a9b, b/422553904)- Wandeln Sie
SubspaceSemanticsInfoin eine versiegelte Schnittstelle um, da wir ohne die Standardwerte keine Mitglieder hinzufügen können. (I372f9, b/423704068) - Dokumentation zu
SpatialExternalSurfaceaktualisiert,ContentSecurityLevelinSurfaceProtectionumbenannt (I3c460, b/420982808) - Überladener Konstruktor für den Modifikator „movable“ bereitgestellt, der das Verankern ermöglicht. (Ic0c70)
- Es wurden weitere Positionsanbieter für Kurzinfos hinzugefügt, sodass Entwickler jetzt festlegen können, ob die Kurzinfo über, unter, links oder rechts vom Anker platziert wird. Es wurde eine API hinzugefügt, die eine Form für Carets akzeptiert, sodass mehr benutzerdefinierte Formen bereitgestellt werden können. (Ie513c, b/374766087, b/418854637)
CoreEntitywurde alsPublishedApientfernt (Ifee05)
Fehlerkorrekturen
- Ein Problem wurde behoben, bei dem
SpatialDialogbeim Rendern blinkte. (Ife73c, b/401619909) - Ein Problem wurde behoben, bei dem
SpatialDialogdas Aktivitätssteuerfeld nicht abdunkeln konnte. (I8ca6c, b/367442109) - Fehler behoben, bei dem im XR-Dialogfeld einige Inhalte nicht angezeigt wurden (I17cd5, b/418062437)
- Ein Problem wurde behoben, bei dem
SpatialPopupgeschlossen wurde, wenn auf den Inhalt geklickt wurde. (If262c, b/417245722) - Ein Problem wurde behoben, bei dem das SpatialPanel beim Verketten von
resizable().movable()nicht korrekt auf die neue Größe angepasst wurde. (I02ee3, b/422264230) - Es wurde ein Problem behoben, bei dem sich
topBarmit dem Menü inSpatialComposeVideoPlayerüberschnitt. (Id33bc, b/427168167) - Fester Eckradius wird nicht gerendert (I975fe, b/428261830)
Version 1.0.0-alpha04
7. Mai 2025
androidx.xr.compose:compose:1.0.0-alpha04 und androidx.xr.compose:compose-testing:1.0.0-alpha04 sind veröffentlicht. Version 1.0.0-alpha04 enthält diese Commits.
Neue Funktionen
- Die Schnittstelle
CompositionLocalConsumerSubspaceModifierNodewurde hinzugefügt, damit benutzerdefinierteSubspaceModifier-Typen auf lokale Werte der Komposition zugreifen können. - Es wurde eine neue
SpatialPanelAPI hinzugefügt, die dem Compose-ImplementierungsstilAndroidViewfolgt. Die vorherigeViewBased SpatialPanelwird eingestellt. - Das Companion-Objekt
VolumeConstraints.Unboundedwurde hinzugefügt, das unbegrenzte Einschränkungen darstellt. SubspaceModifier.onPointSourceParamswurde hinzugefügt, um eine Spatial Audio-Quelle zuzulassen.- Es wurde ein öffentliches
ApplicationSubspacehinzugefügt, das optionaleVolumeConstraintsbietet, um einen 3D-Bereich zu definieren, in dem die App räumliche Inhalte rendern kann. Wenn keine Einschränkungen angegeben sind, wird der Subspace standardmäßig durch das aktuelle Sichtfeld desSpatialUserin Breite und Höhe begrenzt. Nutzer können Einschränkungen angeben, die verwendet werden sollen, wenn das Sichtfeld nicht bestimmt werden kann. Andernfalls werden die Standardwerte für die Breite und Höhe des Sichtfelds verwendet. SpatialExternalSurfacewurde hinzugefügt, mit dem stereoskopische Inhalte gerendert werden können.SpatialExternalSurfacekann mit Modifikatoren (außer Alpha) und einem Effekt für weiche Kanten angepasst werden.- Es wurde ein neuer
pointerHoverIcon-Subspace-Modifikator hinzugefügt, mit dem Nutzer das Symbol für den räumlichen Zeiger festlegen können.
API-Änderungen
- Die Einschränkung
RequiresApi(34)wurde für alle Jetpack XR-Pakete entfernt. Diese Einschränkung war redundant, da Jetpack XR derzeit nur auf Geräten mit API-Level 34 oder höher verfügbar ist. (Iae0f8) - Für Projekte, die mit Kotlin 2.0 veröffentlicht wurden, ist KGP 2.0.0 oder höher erforderlich. (Idb6b5)
- Die Zurück-Funktion funktioniert jetzt auf räumlichen Bereichen ohne eingebettete Aktivitäten. Damit die Zurück-Funktion funktioniert, müssen Sie
android:enableOnBackInvokedCallback="true"im Android-Manifest angeben. - Die Zurück-Geste funktioniert jetzt auch bei räumlichen Dialogfeldern. Damit die Zurück-Schaltfläche funktioniert, müssen Sie
android:enableOnBackInvokedCallback="true"im Android-Manifest angeben. - Compose- und View-basierte
SpatialPanels können jetzt anhand ihres Inhalts skaliert werden. - Entwickler können jetzt eigene benutzerdefinierte
SpatialElevationLevel-Werte festlegen und sind nicht mehr auf die vordefinierten Stufen beschränkt. - Die Höhe des Orbiters kann jetzt über den Parameter
elevationangepasst werden. - Der Unterbereich kann jetzt standardmäßig durch das Sichtfeld des
SpatialUserin Breite und Höhe begrenzt werden. Wenn das Sichtfeld nicht bestimmt werden kann, werden die Standardwerte für die Breite und Höhe des Sichtfelds verwendet. - Dem
Movable-Modifikator wurden die neuen CallbacksonMoveStartundonMoveEndhinzugefügt. Die CallbacksonMoveStartundonMoveEndwerden aufgerufen, wenn der Nutzer beginnt und aufhört, ein Subspace-Composable mit dem Modifikator „movable“ zu verschieben. - Der Parameter
namewurde aus räumlichen APIs wieSpatialRowundSpatialPanelentfernt. Verwenden Sie zum Debuggen von räumlichen Compose-Bäumen stattdessenSubspaceModifier.testTag. - Eine nicht unterstützte Überladung von
SpatialPopup, die nurspatialElevationLevelundcontententhält, wurde entfernt. Verwenden Sie die Schnittstelle, dieonDimissRequestunterstützt. - Der
onPoseChange-Callback aus dem Movable-Modifikator wurde entfernt. Verwenden Sie stattdessenonMove. SubspaceModifiers-Effekte werden nicht mehr angewendet, wenn sie getrennt sind oder gerade getrennt werden.- Die vorhandene
SpatialRowAPI wurde inSpatialRowundSpatialCurvedRowaufgeteilt. Wenn Sie zuvor den ParametercurveRadiusvonSpatialRowverwendet haben, verwenden Sie jetzt stattdessenSpatialCurvedRow, der dasselbe Verhalten bietet. MainPanelundActivityPanelhaben keine Titelleisten mehr, wenn sie auf einem ähnlich aktuellen System-Image ausgeführt werden.- Alpha- und Skalierungsmodifikatoren können jetzt gestapelt werden. Ihre Werte werden multipliziert, um den endgültigen Alpha- oder Skalierungswert zu erhalten.
- Der
onPoseChange-Callback des Movable-Modifikators wurde optimiert, um eine flüssigere Bewegung der Pose zu ermöglichen. - Die Modifikatoren für das Verschieben und Ändern der Größe führen ihre Callbacks jetzt im Hauptthread aus, damit Statusänderungen eine Neuzusammensetzung auslösen.
- Den Layout- und Messphasen wurde eine Statusbeobachtung hinzugefügt, damit Statusänderungen in
SubspaceLayoutein neues Layout auslösen. - Die Aktualisierung der Modifikatorkette wurde optimiert, um vorhandene Modifikatoren besser wiederzuverwenden.
Fehlerkorrekturen
- Scrimming wurde beendet, wenn ein
SpatialDialogangezeigt wird. (Ic4594) - Anfragen zur Neuanordnung, die gestellt werden, während Modifikatorknoten getrennt sind, werden jetzt ignoriert.
- Die durch die Modifikatoren „Movable“ und „Resizable“ ausgelösten Phasen für das Neulayout wurden entfernt.
- Ein Absturz im
MainPanel()-Composable wurde behoben, der auftrat, wenn eine der Dimensionen entweder direkt oder während einer Layoutberechnung, z.B. einerSpatialRow/SpatialColumn-Berechnung, auf null gesetzt wurde. Der Bereich wird jetzt stattdessen ausgeblendet. Dieser Fix behebt speziell Abstürze während der Layoutphase. Das Ändern der Größe des Bereichs auf null durch Nutzerinteraktion wird separat behandelt. Dem ausgeblendeten Bereich fehlen UI-Affordanzen. - Problem mit
maintainAspectRatioaus dem Modifikator „resizable“ behoben. Das Seitenverhältnis sollte jetzt beibehalten werden. - Ein Problem mit verschachtelten Unterbereichen wurde behoben, bei dem sie für einen einzelnen Frame falsch positioniert wurden.
- Ein Problem wurde behoben, durch das abgerundete Ecken manchmal nicht angewendet wurden, obwohl sie es hätten sein sollen.
NestedSubspaceswird nicht mehr für einen Frame an der falschen Stelle angezeigt.
Version 1.0.0-alpha03
26. Februar 2025
androidx.xr.compose:compose:1.0.0-alpha03 und androidx.xr.compose:compose-testing:1.0.0-alpha03 wurden ohne nennenswerte Änderungen seit der letzten Alphaversion veröffentlicht. Version 1.0.0-alpha03 enthält diese Commits.
Version 1.0.0-alpha02
12. Februar 2025
androidx.xr.compose:compose:1.0.0-alpha02 und androidx.xr.compose:compose-testing:1.0.0-alpha02 sind veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.
Neue Funktionen
- Das Aktivitätsfeld kann jetzt seine Inhalte abdunkeln, wenn ein räumlicher Dialog aktiviert wird.
- Die
OrbiterAPI kann jetzt inSubspaceComposable-Kontexten verwendet werden und hängt Orbiters an das nächstgelegeneSubspaceLayout-basierte zusammensetzbare übergeordnete Element an. LayoutCoordinatesAwareModifierNodewurde eingeführt, um benutzerdefinierte positionierungsbasierte Modifikatoren zu ermöglichen.- Lebenszyklusmethoden zum Anhängen/Trennen zu
SubspaceModifier.Nodehinzugefügt. scaleWithDistancewurde dem Modifikator „movable“ hinzugefügt. WennscaleWithDistanceaktiviert ist, wird das verschobene Unterraumelement vergrößert oder verkleinert. Außerdem wird die explizite Skalierung beibehalten, die vor dem Verschieben vorhanden war.
API-Änderungen
SessionCallbackProviderwurde zugunsten vonSpatialCapabilitiesentfernt.
Sonstige Änderungen
minSDKwurde auf 24 reduziert. Für alle Jetpack XR APIs ist zur Laufzeit weiterhin API 34 erforderlich.- Die Konstruktoren
OrbiterEdgeOffset.inner,EdgeOffset.outerundEdgeOffset.overlapsind keine@Composable-Methoden mehr und können daher in nicht kompositionsfähigen Kontexten verwendet werden. - Die räumlichen Höhenstufen wurden aktualisiert, um der neuesten UX-Spezifikation zu entsprechen.
- Implementieren Sie die
SubspaceSemanticsInfo-Schnittstelle inMeasurableLayout. SubspaceModifierElementwurde inSubspaceModifierNodeElementumbenannt.
Diverse Fehlerkorrekturen
- Fehlerbehebungen zur Stabilisierung der
SubspaceModifier-Bestellung.SubspaceModifiersollte zuverlässiger funktionieren. Die Modifikatoren „Offset“, „Rotate“, „Scale“, „Movable“ und „Resizable“ sollten jetzt in beliebiger Reihenfolge verwendet werden können.
Version 1.0.0-alpha01
12. Dezember 2024
androidx.xr.compose:compose-*1.0.0-alpha01 ist veröffentlicht.
Funktionen der ersten Version
Erste Entwicklerversion von Jetpack Compose für XR. Verwenden Sie vertraute Compose-Konzepte wie Zeilen und Spalten, um räumliche UI-Layouts in XR zu erstellen, unabhängig davon, ob Sie eine vorhandene 2D-App zu XR portieren oder eine neue XR-App von Grund auf erstellen. Diese Bibliothek bietet Subspace- und räumliche Composables, z. B. räumliche Bereiche und Orbiter, mit denen Sie Ihre vorhandene 2D-Compose- oder ansichtsbasierte UI in einem räumlichen Layout platzieren können. Es wird das Volume-Unterraum-Composable eingeführt, mit dem Sie SceneCore-Entitäten wie 3D-Modelle relativ zu Ihrer UI platzieren können. Weitere Informationen finden Sie in diesem Entwicklerleitfaden:
Subspace: Dieses Composable kann an einer beliebigen Stelle in der UI-Hierarchie Ihrer App platziert werden. So können Sie Layouts für 2D- und räumliche UIs beibehalten, ohne den Kontext zwischen Dateien zu verlieren. So lassen sich Elemente wie die vorhandene App-Architektur leichter zwischen XR und anderen Formfaktoren teilen, ohne dass der Status über den gesamten UI-Baum hinweg angehoben oder die App neu strukturiert werden muss.SpatialPanel: Ein SpatialPanel ist ein Subspace-Composable, mit dem Sie App-Inhalte anzeigen können, z. B. Videowiedergabe, Standbilder oder andere Inhalte.
Orbiter: Ein Orbiter ist eine räumliche UI-Komponente. Sie ist so konzipiert, dass sie an einem entsprechenden räumlichen Bereich angebracht werden kann, und enthält Navigations- und Kontextaktionen, die sich auf diesen räumlichen Bereich beziehen. Wenn Sie beispielsweise ein räumliches Steuerfeld zum Anzeigen von Videoinhalten erstellt haben, können Sie in einem Orbiter Steuerelemente für die Videowiedergabe hinzufügen.
Volume: Platzieren Sie SceneCore-Entitäten wie 3D-Modelle relativ zu Ihrer Benutzeroberfläche.
Spatial Layout: Sie können mehrere räumliche Bereiche erstellen und sie mit
SpatialRow,SpatialColumn,SpatialBoxundSpatialLayoutSpacerin einem Spatial Layout platzieren. Verwenden SieSubspaceModifiers, um das Layout anzupassen.Spatial-UI-Komponenten: Diese Elemente können in Ihrer 2D-UI wiederverwendet werden. Ihre räumlichen Attribute sind nur sichtbar, wenn Spatial-Funktionen aktiviert sind.
SpatialDialog: Das Steuerfeld wird in der Z-Tiefe leicht nach hinten verschoben, um ein erhöhtes Dialogfeld anzuzeigen.SpatialPopUp: Das Steuerfeld wird in der Z-Tiefe leicht nach hinten verschoben, um ein erhöhtes Pop-up anzuzeigen.SpatialElevation:SpatialElevationLevelkann festgelegt werden, um eine Erhöhung hinzuzufügen.
SpatialCapabilities: Die räumlichen Funktionen können sich ändern, wenn Nutzer mit Ihrer App oder dem System interagieren, oder sogar von Ihrer App selbst geändert werden, z. B. beim Wechsel in den Home Space oder Full Space. Um Probleme zu vermeiden, muss Ihre App
LocalSpatialCapabilities.currentprüfen, um festzustellen, welche APIs in der aktuellen Umgebung unterstützt werden.isSpatialUiEnabled: Spatial-UI-Elemente (z.B. SpatialPanel)isContent3dEnabled: 3D-ObjekteisAppEnvironmentEnabled: Die UmgebungisPassthroughControlEnabled: Ob die Anwendung den Passthrough-Status steuern kann oder nichtisSpatialAudioEnabled: Spatial Audio
Bekannte Probleme
- Derzeit ist eine minSDK von 30 erforderlich, um Jetpack Compose für XR zu verwenden. Als Problemumgehung können Sie den folgenden Manifesteintrag
<uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>hinzufügen, um mit einer minSDK von 23 zu erstellen und auszuführen. - Für Jetpack XR-Apps muss derzeit die Berechtigung
android.permission.SCENE_UNDERSTANDINGim AndroidManifest angefordert werden. - Wenn eine App über das Attribut
PROPERTY_XR_ACTIVITY_START_MODEin ihrem Manifest direkt im Full Space gestartet wird, werden Aktivitäten/Anwendungen zuerst im Home Space geöffnet, bevor sie in den Full Space wechseln. - glTFs in Volume-Kompositionen können anfangs an der falschen Stelle flackern.
- Wenn Sie ein SpatialDialog-Element in einem Bereich verwenden, der stark verschoben wurde, werden die Inhalte in die falsche Richtung verschoben.