Informazioni sui modificatori di sottospazio

Dispositivi XR applicabili
Queste indicazioni ti aiutano a creare esperienze per questi tipi di dispositivi XR.
Visori XR
Occhiali XR con cavo

Un SubspaceModifier è simile a un modificatore Compose per i composable in un Subspace. Un SubspaceModifier ti consente di manipolare i composable nello spazio 3D, aiutandoti a posizionare, ruotare e aggiungere comportamenti ai nodi di layout 3D.

Layout

Per impostazione predefinita, un Subspace è delimitato dallo spazio consigliato per la visualizzazione di un'app. Questi limiti vengono utilizzati per misurare il layout dei componenti del sottospazio, in modo simile ai limiti nei layout di Compose 2D.

Riempi limiti

I modificatori fillMaxSize, fillMaxWidth, fillMaxHeight e fillMaxDepth fanno in modo che i contenuti riempiano (parzialmente) i limiti del relativo elemento principale. L'utilizzo di modificatori di riempimento consente al layout dell'app di disporre i contenuti in modo indipendente dalle caratteristiche di visualizzazione del dispositivo XR.

Imposta le dimensioni e le dimensioni richieste

I modificatori size, width, height e depth dichiarano le dimensioni preferite dei contenuti. Per dichiarare le dimensioni esatte dei contenuti, utilizza requiredSize, requiredWidth, requiredHeight e requiredDepth. Queste unità devono essere specificate in dp; per convertire i metri in dp, utilizza Meter.toDp().

Elementi composable di posizione

offset

Il modificatore offset sposta il composable nello spazio 3D lungo gli assi x, y e z. Queste unità devono essere specificate in dp; per convertire i metri in dp, utilizza Meter.toDp().

rotate

Il modificatore rotate ruota il composable specificato nello spazio. Puoi specificare la direzione e l'entità della rotazione in diversi modi:

  • Utilizzando beccheggio, imbardata e rollio, che specificano la rotazione attorno agli assi x, y e z rispettivamente,
  • Utilizzando un axisAngle, ovvero un Vector3 che rappresenta l'asse di rotazione e l'angolo di rotazione,
  • Utilizzando un Quaternion che rappresenta la rotazione.

rotateToLookAtUser

Il modificatore rotateToLookAtUser ruota continuamente i contenuti in modo che siano sempre rivolti verso l'utente. Puoi anche utilizzare questo modificatore per ottenere un effetto "cartellone" in cui i contenuti ruotano per essere rivolti verso l'utente sull'asse Y, rimanendo comunque in posizione verticale e allineati alla gravità. Per farlo, combina il modificatore rotateToLookAtUser con il modificatore gravityAligned.

Spostare e ridimensionare con i componenti combinabili

Consente agli utenti di manipolare direttamente la posizione e le dimensioni degli oggetti nello spazio 3D. Puoi aggiungere questi modificatori a singoli componenti (come SpatialPanel), sottospazi e componenti di layout spaziale (come SpatialRow o SpatialColumn).

Spostare gli elementi

I modificatori mobili consentono agli utenti di afferrare e riposizionare gli elementi dello spazio secondario.

  • transformingMovable: utilizza questo modificatore per il movimento standard. Questo modificatore configura l'elemento in modo che sia interattivo e spostabile dall'utente. Il sistema calcola e applica automaticamente la nuova posa e la nuova scala in base all'input dell'utente.

  • movable: utilizza questo modificatore per definire un comportamento di movimento personalizzato. Anche se il sistema fornisce la funzionalità di spostamento, devi utilizzare l'evento onMove richiesto e applicare il risultato. Ciò è utile per limitare il movimento o creare movimenti personalizzati nella tua app.

Ridimensionare gli elementi

I modificatori ridimensionabili consentono agli utenti di afferrare e ridimensionare gli elementi dello spazio di lavoro.

  • transformingResizable: utilizza questo modificatore per il ridimensionamento gestito dal sistema. Questo modificatore gestisce automaticamente il gesto di ridimensionamento e applica le nuove dimensioni specificate dall'utente.

  • resizable: utilizza questo modificatore per la logica di ridimensionamento personalizzata. Sebbene il sistema fornisca la possibilità di ridimensionamento, devi utilizzare l'evento onResize e applicare il risultato. Questo modificatore è utile per scenari complessi, ad esempio per mantenere un formato specifico o per riaggiustare il layout complessivo di altri componenti al termine di un ridimensionamento.

Modificare l'aspetto dei componenti componibili

alpha

Il modificatore alpha imposta l'opacità dell'elemento e dei relativi elementi secondari, dove 0f rappresenta la trasparenza completa e 1.0f l'opacità completa.

scale

Il modificatore scale ridimensiona i contenuti del composable lungo gli assi orizzontale, verticale e di profondità.

Test e accessibilità

semantics

Il modificatore semantics aggiunge la semantica al nodo del layout, per l'utilizzo in test e accessibilità. Consulta Semantica in Jetpack Compose e SemanticsModifier.

testTag

Il modificatore testTag è un'abbreviazione di SemanticsPropertyReceiver.testTag, che consente ai framework di test di trovare l'elemento nei test.