Jetpack Compose per XR
Ultimo aggiornamento | Release stabile | Candidato per la release | Versione beta | Versione alpha |
---|---|---|---|---|
12 dicembre 2024 | - | - | - | 1.0.0-alpha01 |
Dichiarazione delle dipendenze
Per aggiungere una dipendenza a XR compose, devi aggiungere il repository Maven di Google al tuo progetto. Per ulteriori informazioni, consulta il repository Maven di Google.
Aggiungi le dipendenze per gli elementi necessari nel file build.gradle
per la tua app o il tuo modulo:
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") }
Per ulteriori informazioni sulle dipendenze, consulta Aggiungere dipendenze di compilazione.
Feedback
Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa raccolta. Prima di crearne uno nuovo, dai un'occhiata ai problemi esistenti in questa raccolta. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.
Per ulteriori informazioni, consulta la documentazione del Monitoraggio problemi.
Versione 1.0
Versione 1.0.0-alpha01
12 dicembre 2024
androidx.xr.compose:compose-*1.0.0-alpha01
viene rilasciato.
Funzionalità della versione iniziale
Versione iniziale per sviluppatori di Jetpack Compose per XR. Utilizza concetti di Compose familiari, come righe e colonne, per creare layout dell'interfaccia utente spaziale in XR, indipendentemente dal fatto che tu stia eseguendo il porting di un'app 2D esistente in XR o creando una nuova app XR da zero. Questa libreria fornisce composibili nello spazio e nello spazio sottostante, ad esempio pannelli e orbiter spaziali, che ti consentono di posizionare l'interfaccia utente 2D esistente basata su Compose o su Views in un layout spaziale. Viene introdotto il composable sottospazio Volume, che consente di posizionare entità SceneCore, come i modelli 3D, rispetto all'interfaccia utente. Scopri di più in questa guida per gli sviluppatori:
Subspace
: questo composable può essere posizionato in qualsiasi punto della gerarchia dell'interfaccia utente dell'app, consentendoti di mantenere i layout per l'interfaccia utente 2D e spaziale senza perdere il contesto tra i file. In questo modo è più facile condividere elementi come l'architettura dell'app esistente tra XR e altri fattori di forma senza dover eseguire l'elevazione dello stato nell'intera struttura dell'interfaccia utente o ristrutturare l'app.SpatialPanel: un riquadro spaziale è un componente componibile sottospaziale che ti consente di visualizzare i contenuti dell'app. Ad esempio, in un riquadro spaziale puoi visualizzare la riproduzione di video, immagini fisse o qualsiasi altro contenuto.
Orbiter: un orbiter è un componente dell'interfaccia utente spaziale. È progettato per essere collegato a un riquadro spaziale corrispondente e contiene attività di navigazione e contestuali relative a quel riquadro spaziale. Ad esempio, se hai creato un riquadro spaziale per visualizzare contenuti video, puoi aggiungere i controlli di riproduzione video all'interno di un orbiter.
Volume: posiziona le entità SceneCore, ad esempio i modelli 3D, rispetto all'interfaccia utente.
Layout spaziale: puoi creare più riquadri spaziali e posizionarli all'interno di un layout spaziale utilizzando
SpatialRow
,SpatialColumn
,SpatialBox
eSpatialLayoutSpacer
. Utilizza iSubspaceModifier
per personalizzare il layout.Componenti dell'interfaccia utente spaziale: questi elementi possono essere riutilizzati nell'interfaccia utente 2D e i relativi attributi spaziali saranno visibili solo quando le funzionalità spaziali sono attivate.
SpatialDialog
: il riquadro si spingerà leggermente indietro in profondità z per visualizzare una finestra di dialogo in primo piano.SpatialPopUp
: il riquadro si spingerà leggermente indietro in Z-depth per visualizzare un popup rialzatoSpatialElevation
:SpatialElevationLevel
può essere impostato per aggiungere l'elevazione.
SpatialCapabilities: le funzionalità spaziali possono cambiare man mano che gli utenti interagiscono con la tua app o con il sistema oppure possono essere modificate anche dalla tua app stessa, ad esempio passando allo spazio della casa o allo spazio completo. Per evitare problemi, l'app deve verificare la presenza di
LocalSpatialCapabilities.current
per determinare quali API sono supportate nell'ambiente corrente.isSpatialUiEnabled
: elementi dell'interfaccia utente spaziale (ad es. SpatialPanel)isContent3dEnabled
: oggetti 3DisAppEnvironmentEnabled
: l'ambienteisPassthroughControlEnabled
: indica se l'applicazione può controllare o meno lo stato di passthroughisSpatialAudioEnabled
: audio spaziale
Problemi noti
- Al momento è necessaria una versione minima dell'SDK pari a 30 per utilizzare Jetpack Compose per XR. Come soluzione alternativa, puoi aggiungere la seguente voce manifest
<uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>
per poter compilare ed eseguire con un minSDK di 23. - Al momento le app Jetpack XR richiedono la richiesta dell'autorizzazione
android.permission.SCENE_UNDERSTANDING
in AndroidManifest. - Quando un'app viene avviata direttamente nello spazio intero utilizzando la proprietà
PROPERTY_XR_ACTIVITY_START_MODE
nel file manifest, le attività/le applicazioni vengono inizialmente aperte nello spazio Home prima di passare allo spazio intero. - I file glTF nei composabili di volume potrebbero inizialmente tremolare nella posizione sbagliata.
- L'utilizzo di un riquadro SpatialDialog in un riquadro che è stato spostato in modo significativo spingerà i contenuti nella direzione sbagliata.