Un SubspaceModifier est semblable à un modificateur Compose pour les composables
dans un Subspace. Un SubspaceModifier vous permet de manipuler des composables dans un espace 3D, ce qui vous aide à positionner, à faire pivoter et à ajouter des comportements aux nœuds de mise en page 3D.
Mise en page
Par défaut, un Subspace est limité par l'espace recommandé pour afficher une
application. Ces limites sont utilisées lors de la mesure de la mise en page des composants de votre sous-espace, comme les limites dans les mises en page Compose 2D.
Remplir les limites
Les modificateurs fillMaxSize, fillMaxWidth, fillMaxHeight, et
fillMaxDepth remplissent (partiellement) les limites de leur parent.
L'utilisation de modificateurs de remplissage permet à la mise en page de votre application de s'adapter à un contenu indépendant des caractéristiques d'affichage de l'appareil XR.
Définir la taille et la taille requise
Les modificateurs size, width, height et depth
déclarent la taille préférée du contenu. Pour déclarer la taille exacte du
contenu, utilisez requiredSize, requiredWidth,
requiredHeight et requiredDepth. Ces unités doivent être spécifiées
en dp. Pour convertir des mètres en dp, utilisez Meter.toDp().
Positionner les composables
offset
Le modificateur offset déplace le composable dans un espace 3D le long des axes x, y,
et z. Ces unités doivent être spécifiées en dp ; pour convertir des mètres en
dp, utilisez Meter.toDp().
rotate
Le rotate modificateur fait pivoter le composable donné dans l'espace. Vous pouvez spécifier la direction et l'angle de rotation de différentes manières :
- En utilisant le tangage, le lacet et le roulis, qui spécifient la rotation autour des axes
x,yetz, respectivement. - En utilisant un
axisAngle, qui est unVector3représentant l'axe de rotation et l'angle de rotation autour de cet axe. - En utilisant un
Quaternionqui représente la rotation.
rotateToLookAtUser
Le rotateToLookAtUser modificateur fait pivoter
le contenu en continu afin qu'il soit toujours face à l'utilisateur. Vous pouvez également utiliser ce modificateur pour obtenir un effet de "panneau d'affichage" où le contenu pivote pour faire face à l'utilisateur sur l'axe Y tout en restant droit et aligné sur la gravité. Pour ce faire,
combinez le rotateToLookAtUser modificateur avec
le gravityAligned modificateur.
Déplacer et redimensionner avec des composables
Permettez aux utilisateurs de manipuler directement la position et la taille des objets dans un espace 3D. Vous pouvez ajouter ces modificateurs à des composants individuels (comme SpatialPanel), des sous-espaces et des composants de mise en page spatiaux (comme SpatialRow ou SpatialColumn).
Déplacer des éléments
Les modificateurs déplaçables permettent aux utilisateurs de saisir et de repositionner des éléments de sous-espace.
transformingMovable: utilisez ce modificateur pour un mouvement standard. Ce modificateur configure l'élément pour qu'il soit interactif et déplaçable par l'utilisateur. Le système calcule et applique automatiquement la nouvelle pose et la nouvelle échelle en fonction de l'entrée utilisateur.movable: utilisez ce modificateur pour définir un comportement de mouvement personnalisé. Bien que le système fournisse l'affordance de déplacement, vous devez utiliser l'événementonMoverequis et appliquer le résultat. Cela est utile pour limiter le mouvement ou créer un mouvement personnalisé dans votre application.
Redimensionner des éléments
Les modificateurs redimensionnables permettent aux utilisateurs de saisir et de redimensionner des éléments de sous-espace.
transformingResizable: utilisez ce modificateur pour un redimensionnement géré par le système. Ce modificateur gère automatiquement le geste de redimensionnement et applique les nouvelles dimensions spécifiées par l'utilisateur.resizable: utilisez ce modificateur pour une logique de redimensionnement personnalisée. Bien que le système fournisse l'affordance de redimensionnement, vous devez utiliser l'événementonResizeet appliquer le résultat. Ce modificateur est utile dans les scénarios complexes, par exemple pour conserver un format spécifique ou réajuster la mise en page globale d'autres composants après la fin d'un redimensionnement.
Modifier l'apparence des composables
alpha
Le modificateur alpha définit l'opacité de l'élément et de ses enfants,
où 0f représente une transparence totale et 1.0f représente une opacité totale.
scale
Le scale modificateur met à l'échelle le contenu du composable le long des
axes horizontal, vertical et de profondeur.
Tests et accessibilité
semantics
Le modificateur semantics ajoute une sémantique au nœud de mise en page, pour une utilisation dans les
tests et l'accessibilité. Consultez Sémantique dans Jetpack Compose et
SemanticsModifier.
testTag
Le testTag modificateur est un raccourci pour
SemanticsPropertyReceiver.testTag, qui permet aux frameworks de test de trouver
l'élément dans les tests.