Jetpack Compose für XR
Letzte Aktualisierung | Stabile Version | Release-Kandidat | Beta-Ausgabe | Alphaversion |
---|---|---|---|---|
12. Februar 2025 | - | – | - | 1.0.0-alpha02 |
Abhängigkeiten deklarieren
Wenn Sie eine Abhängigkeit von XR Compose hinzufügen möchten, müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.
Fügen Sie der Datei build.gradle
für Ihre App oder Ihr Modul die Abhängigkeiten für die erforderlichen Artefakte hinzu:
Groovy
dependencies { implementation "androidx.xr.compose:compose:1.0.0-alpha01" // Use to write unit tests testImplementation "androidx.xr.compose:compose-testing:1.0.0-alpha01" }
Kotlin
dependencies { implementation("androidx.xr.compose:compose:1.0.0-alpha01") // Use to write unit tests testImplementation("androidx.xr.compose:compose-testing:1.0.0-alpha01") }
Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.
Feedback
Ihr Feedback hilft uns, Jetpack zu verbessern. Bitte teilen Sie uns mit, wenn Sie neue Probleme feststellen oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie ein neues erstellen. Sie können einem vorhandenen Problem Ihre Stimme geben, indem Sie auf die Schaltfläche mit dem Stern klicken.
Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.
Version 1.0
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
werden freigegeben. Version 1.0.0-alpha02 enthält diese Commits.
Neue Funktionen
- Der Inhalt des Infofelds kann jetzt ausgeblendet werden, wenn ein räumlicher Dialog aktiviert ist.
- Die
Orbiter
API kann jetzt inSubspaceComposable
-Kontexten verwendet werden und fügt Orbiter dem nächstgelegenenSubspaceLayout
-basierten übergeordneten Element hinzu. - Einführung von
LayoutCoordinatesAwareModifierNode
für benutzerdefinierte positionierungsbasierte Modifikatoren. SubspaceModifier.Node
-Methoden zum An- und Trennen wurden hinzugefügt.- Dem beweglichen Modifikator wurde
scaleWithDistance
hinzugefügt. WennscaleWithDistance
aktiviert ist, wird das verschobene Unterraumelement vergrößert oder verkleinert. Außerdem bleibt die explizite Skalierung erhalten, die vor der Bewegung festgelegt wurde.
API-Änderungen
SessionCallbackProvider
wurde durchSpatialCapabilities
ersetzt.
Sonstige Änderungen
minSDK
auf 24 reduziert Für alle Jetpack XR APIs ist weiterhin API 34 in der Laufzeit erforderlich.- Die Konstruktoren
Orbiter
,EdgeOffset.inner
,EdgeOffset.outer
undEdgeOffset.overlap
sind keine@Composable
-Methoden mehr, sodass sie auch in nicht kombinierbaren Kontexten verwendet werden können. - Aktualisieren Sie die Höhenstufen so, dass sie der aktuellen UX-Spezifikation entsprechen.
- Implementieren Sie die
SubspaceSemanticsInfo
-Schnittstelle inMeasurableLayout
. SubspaceModifierElement
wurde inSubspaceModifierNodeElement
umbenannt.
Fehlerkorrekturen
- Fehlerbehebungen zur Stabilisierung der
SubspaceModifier
-Bestellungen.SubspaceModifier
sollte jetzt zuverlässiger funktionieren. Die Modifikatoren „Abstand“, „Drehen“, „Skalieren“, „Verschiebbar“ und „Weitgehend skalierbar“ 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
wird veröffentlicht.
Funktionen der Erstversion
Erste Entwicklerversion von Jetpack Compose für XR. Verwenden Sie bekannte Compose-Konzepte wie Zeilen und Spalten, um räumliche UI-Layouts in XR zu erstellen, unabhängig davon, ob Sie eine vorhandene 2D-App auf XR umstellen oder eine neue XR-App von Grund auf neu erstellen. Diese Bibliothek bietet untergeordnete und räumliche Kompositionen, z. B. räumliche Bereiche und Orbiter, mit denen Sie Ihre vorhandene 2D-Compose- oder datenbankbasierte Benutzeroberfläche in ein räumliches Layout einfügen können. Es wird der zusammensetzbare Volumenunterraum eingeführt, mit dem Sie SceneCore-Entitäten wie 3D-Modelle relativ zu Ihrer Benutzeroberfläche platzieren können. Weitere Informationen finden Sie in diesem Entwicklerleitfaden:
Subspace
: Dieses Composeable kann überall in der UI-Hierarchie Ihrer App platziert werden. So können Sie Layouts für 2D- und räumliche Benutzeroberflächen beibehalten, ohne den Kontext zwischen Dateien zu verlieren. So können Sie z. B. die vorhandene App-Architektur zwischen XR und anderen Formfaktoren teilen, ohne den Status durch den gesamten UI-Baum hochladen oder Ihre App neu entwerfen zu müssen.SpatialPanel: Ein SpatialPanel ist ein zusammensetzbarer Unterraum, in dem Sie App-Inhalte anzeigen können. So können Sie beispielsweise Videowiedergabe, Standbilder oder andere Inhalte in einem SpatialPanel anzeigen.
Orbiter: Ein Orbiter ist eine räumliche UI-Komponente. Sie ist für die Anbringung an einem entsprechenden Infofeld konzipiert und enthält Navigations- und Kontextaktionselemente, die sich auf dieses Infofeld beziehen. Wenn Sie beispielsweise ein räumliches Steuerfeld zum Anzeigen von Videoinhalten erstellt haben, können Sie die Steuerelemente für die Videowiedergabe in einem Orbiter hinzufügen.
Volume: Hiermit können Sie SceneCore-Entitäten wie 3D-Modelle relativ zur Benutzeroberfläche platzieren.
Spatial Layout: Mit
SpatialRow
,SpatialColumn
,SpatialBox
undSpatialLayoutSpacer
können Sie mehrere räumliche Bereiche erstellen und in einem räumlichen Layout platzieren. MitSubspaceModifier
können Sie das Layout anpassen.Komponenten für die räumliche Benutzeroberfläche: Diese Elemente können in Ihrer 2D-Benutzeroberfläche wiederverwendet werden. Ihre räumlichen Attribute sind nur sichtbar, wenn die räumlichen Funktionen aktiviert sind.
SpatialDialog
: Der Bereich wird in der Z‑Tiefe etwas nach hinten verschoben, um ein erhöhtes Dialogfeld anzuzeigen.SpatialPopUp
: Der Bereich wird in der Z-Tiefe etwas nach hinten verschoben, um ein erhöhtes Pop-up anzuzeigen.SpatialElevation
: MitSpatialElevationLevel
kann ein Höhenunterschied hinzugefügt werden.
SpatialCapabilities: Die standortbezogenen 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. wenn Sie in den Home Space oder Full Space wechseln. Um Probleme zu vermeiden, muss Ihre App nach
LocalSpatialCapabilities.current
suchen, um zu ermitteln, welche APIs in der aktuellen Umgebung unterstützt werden.isSpatialUiEnabled
: Räumliche UI-Elemente (z.B. SpatialPanel)isContent3dEnabled
: 3D-ObjekteisAppEnvironmentEnabled
: Die UmgebungisPassthroughControlEnabled
: Ob die Anwendung den Passthrough-Status steuern kannisSpatialAudioEnabled
: Raumklang
Bekannte Probleme
- Derzeit ist ein Mindest-SDK von 30 erforderlich, um Jetpack Compose für XR zu verwenden. Als Workaround 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_UNDERSTANDING
im AndroidManifest angefordert werden. - Wenn eine App mithilfe der Property
PROPERTY_XR_ACTIVITY_START_MODE
im Manifest direkt im Vollbildschirm gestartet wird, werden Aktivitäten/Anwendungen zuerst im privaten Bereich geöffnet, bevor sie in den Vollbildschirm wechseln. - glTFs in Volume-Composables flackern möglicherweise anfangs an der falschen Stelle.
- Wenn Sie ein SpatialDialog-Element in einem Bereich verwenden, der stark verschoben wurde, werden die Inhalte in die falsche Richtung verschoben.