Ein SubspaceModifier ähnelt einem Compose-Modifikator für Composables
in einem Subspace. Mit einem SubspaceModifier können Sie Composables im 3D‑Raum bearbeiten und so 3D‑Layoutknoten positionieren, drehen und Verhaltensweisen hinzufügen.
Layout
Standardmäßig ist ein Subspace durch den empfohlenen Bereich für die Anzeige einer
App begrenzt. Diese Grenzen werden verwendet, wenn das Layout Ihrer Subspace
Komponenten gemessen wird, ähnlich wie bei Grenzen in 2D‑Compose-Layouts.
Grenzen füllen
Mit den Modifikatoren fillMaxSize, fillMaxWidth, fillMaxHeight und
fillMaxDepth wird der Inhalt (teilweise) an die Grenzen des übergeordneten Elements angepasst.
Mit Fill-Modifikatoren können Sie App-Layoutinhalte erstellen, die unabhängig von den Anzeigeeigenschaften des XR‑Geräts sind.
Größe und erforderliche Größe festlegen
Mit den Modifikatoren size, width, height und depth
wird die bevorzugte Größe des Inhalts deklariert. Um die genaue Größe des
Inhalts zu deklarieren, verwenden Sie requiredSize, requiredWidth,
requiredHeight und requiredDepth. Diese Einheiten müssen
in dp angegeben werden. Verwenden Sie Meter.toDp(), um von Metern in dp umzurechnen.
Composables positionieren
offset
Mit dem Modifikator offset wird das Composables im 3D‑Raum entlang der x, y,
und z‑Achse verschoben. Diese Einheiten müssen in dp angegeben werden. Verwenden Sie Meter.toDp(), um von Metern in
dp umzurechnen.
rotate
Mit dem Modifikator rotate wird das angegebene Composables im Raum gedreht. Sie können die Richtung und den Grad der Drehung auf verschiedene Arten angeben:
- Mit Pitch, Yaw und Roll, die die Drehung um die
x-,y- bzw.z-Achse angeben. - Mit einem
axisAngle, einemVector3, der die Drehachse darstellt, und dem Grad, um den gedreht werden soll. - Mit einem
Quaternion, der die Drehung darstellt.
rotateToLookAtUser
Mit dem rotateToLookAtUser Modifikator wird der Inhalt kontinuierlich so gedreht
, dass er immer dem Nutzer zugewandt ist. Sie können diesen Modifikator auch verwenden, um einen „Billboard“-Effekt zu erzielen, bei dem der Inhalt so gedreht wird, dass er dem Nutzer auf der Y‑Achse zugewandt ist, aber dennoch aufrecht bleibt und an der Schwerkraft ausgerichtet ist. Kombinieren Sie dazu
den rotateToLookAtUser Modifikator mit
dem gravityAligned Modifikator.
Composables verschieben und ihre Größe ändern
Nutzer können die Position und Größe von Objekten im 3D‑Raum direkt bearbeiten. Sie können diese Modifikatoren einzelnen Komponenten (z. B. SpatialPanel), Subspaces und räumlichen Layoutkomponenten (z. B. SpatialRow oder SpatialColumn) hinzufügen.
Elemente verschieben
Wenn der Modifikator movable vorhanden und aktiviert ist, werden verschiebbare UI
Steuerelemente angezeigt, mit denen der Nutzer das Element im 3D‑Raum verschieben kann. Das spezifische Verhalten dieser Bewegung wird durch die angegebene movePolicy definiert:
MovePolicy.default: Das System verarbeitet die Bewegung vollständig und berechnet und wendet die neue Pose und Skalierung automatisch basierend auf der Nutzereingabe an.MovePolicy.custom: Das System berechnet die Zielpose basierend auf der Eingabe, wendet sie aber nicht automatisch auf das zugehörige Element an. Das ist nützlich, um die Bewegung einzuschränken oder benutzerdefinierte Bewegungen in Ihrer App zu erstellen.
Größe von Elementen ändern
Wenn der resizable() Modifikator vorhanden und aktiviert ist, werden UI‑Steuerelemente
angezeigt, mit denen der Nutzer die Größe des Elements im 3D‑Raum ändern kann. Das spezifische Verhalten der Größenänderung wird durch die angegebene resizePolicy definiert:
ResizePolicy.default(): Das System verarbeitet die Geste zur Größenänderung automatisch und wendet die neuen Abmessungen auf den Inhalt an.ResizePolicy.custom(): Das System stellt einSpatialResizeEventbereit und wendet das Ergebnis der Größenänderung nicht automatisch auf das zugehörige Element an.
Darstellung von Composables ändern
alpha
Mit dem Modifikator alpha wird die Deckkraft des Elements und seiner untergeordneten Elemente festgelegt,
wobei 0f für vollständig transparent und 1.0f für vollständig undurchsichtig steht.
scale
Mit dem scale Modifikator wird der Inhalt des Composables entlang der
horizontalen, vertikalen und Tiefenachse skaliert.
Testen und Barrierefreiheit
semantics
Mit dem Modifikator semantics werden dem Layoutknoten Semantik hinzugefügt, die für
Tests und Barrierefreiheit verwendet werden kann. Weitere Informationen finden Sie unter Semantik in Jetpack Compose und
SemanticsModifier.
testTag
Der testTag Modifikator ist eine Kurzform für
SemanticsPropertyReceiver.testTag, mit der Test-Frameworks
das Element in Tests finden können.