Um SubspaceModifier é semelhante a um modificador do Compose para elementos combináveis
em um Subspace. Um SubspaceModifier permite manipular elementos combináveis no espaço 3D, ajudando a posicionar, girar e adicionar comportamentos a nós de layout 3D.
Layout
Por padrão, um Subspace é limitado pelo espaço recomendado para visualizar um
app. Esses limites são usados ao medir o layout dos componentes do subespaço, semelhante aos limites em layouts do Compose 2D.
Preencher limites
Os modificadores fillMaxSize, fillMaxWidth, fillMaxHeight e
fillMaxDepth fazem com que o conteúdo preencha (parcialmente) os limites do pai.
O uso de modificadores de preenchimento ajuda o layout do app a criar conteúdo independente das características de exibição do dispositivo XR.
Definir o tamanho e o tamanho necessário
Os modificadores size, width, height, e depth
declaram o tamanho preferencial do conteúdo. Para declarar o tamanho exato do
conteúdo, use requiredSize, requiredWidth,
requiredHeight e requiredDepth. Essas unidades precisam ser especificadas
em dp. Para converter de metros para dp, use Meter.toDp().
Posicionar elementos combináveis
offset
O modificador offset move o elemento combinável no espaço 3D ao longo dos eixos x, y,
e z. Essas unidades precisam ser especificadas em dp. Para converter de metros para
dp, use Meter.toDp().
rotate
O rotate modificador gira o elemento combinável fornecido no espaço. É possível especificar a direção e a quantidade de rotação de maneiras diferentes:
- Usando inclinação, guinada e rolagem, que especificam a rotação em torno dos eixos
x,yez, respectivamente, - Usando um
axisAngle, que é umVector3que representa o eixo de rotação e a quantidade de graus que ele precisa ser girado, - Usando um
Quaternionque representa a rotação.
rotateToLookAtUser
O modificador rotateToLookAtUser gira continuamente
o conteúdo para que ele fique sempre voltado para o usuário. Também é possível usar esse modificador para conseguir um efeito de "outdoor" em que o conteúdo gira para ficar de frente para o usuário no eixo Y, mas ainda permanece na vertical e alinhado com a gravidade. Para fazer isso,
combine o modificador rotateToLookAtUser com
o modificador gravityAligned.
Mover e redimensionar com elementos combináveis
Permita que os usuários manipulem diretamente a posição e o tamanho dos objetos no espaço 3D. É possível adicionar esses modificadores a componentes individuais (como SpatialPanel), subespaços e componentes de layout espacial (como SpatialRow ou SpatialColumn).
Mover elementos
Os modificadores móveis permitem que os usuários peguem e reposicionem elementos de subespaço.
transformingMovable: use esse modificador para movimentos padrão. Ele configura o elemento para ser interativo e móvel pelo usuário. O sistema calcula e aplica automaticamente a nova pose e escala com base na entrada do usuário.movable: use esse modificador para definir o comportamento de movimento personalizado. Embora o sistema forneça a capacidade de movimento, é necessário usar o eventoonMoveobrigatório e aplicar o resultado. Isso é útil para restringir o movimento ou criar um movimento personalizado no app.
Redimensionar elementos
Os modificadores redimensionáveis permitem que os usuários peguem e redimensionem elementos de subespaço.
transformingResizable: use esse modificador para redimensionamento gerenciado pelo sistema. Esse modificador processa automaticamente o gesto de redimensionamento e aplica as novas dimensões especificadas pelo usuário.resizable: use esse modificador para lógica de redimensionamento personalizada. Embora o sistema forneça a capacidade de redimensionamento, é necessário usar o eventoonResizee aplicar o resultado. Esse modificador é útil para cenários complexos, como manter uma proporção específica ou reajustar o layout geral de outros componentes após o término de um redimensionamento.
Mudar a aparência de elementos combináveis
alpha
O modificador alpha define a opacidade do elemento e dos filhos dele,
em que 0f representa totalmente transparente e 1.0f representa completamente opaco.
scale
O modificador scale dimensiona o conteúdo do elemento combinável ao longo dos
eixos horizontal, vertical e de profundidade.
Testes e acessibilidade
semantics
O modificador semantics adiciona semântica ao nó de layout para uso em
testes e acessibilidade. Consulte Semântica no Jetpack Compose e
SemanticsModifier.
testTag
O modificador testTag é um atalho para
SemanticsPropertyReceiver.testTag, que permite que as estruturas de teste encontrem
o elemento em testes.