Ein SubspaceModifier
ähnelt einem Compose-Modifikator für Composables in einem Subspace
. Mit einem SubspaceModifier
können Sie Composables im 3D-Raum bearbeiten, um 3D-Layoutknoten zu positionieren, zu drehen und ihnen Verhaltensweisen hinzuzufügen.
Layout
Standardmäßig wird ein Subspace
durch den empfohlenen Bereich zum Ansehen einer App begrenzt. Diese Grenzen werden beim Messen des Layouts Ihrer Unterbereichskomponenten verwendet, ähnlich wie Grenzen in 2D-Compose-Layouts.
Grenzen für das Ausfü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 Inhalte im App-Layout unabhängig von den Displayeigenschaften des XR-Geräts anordnen.
Größe und erforderliche Größe festlegen
Mit den Modifizierern size
, width
, height
und depth
wird die bevorzugte Größe des Inhalts deklariert. Um die genaue Größe des Inhalts anzugeben, verwenden Sie requiredSize
, requiredWidth
, requiredHeight
und requiredDepth
. Diese Einheiten müssen in dp
angegeben werden. Verwenden Sie Meter.toDp()
, um Meter in dp umzurechnen.
Positionierung von Composables
offset
Mit dem Modifier offset
wird das Composable im 3D-Raum entlang der Achsen x
, y
und z
verschoben. Diese Einheiten müssen in dp
angegeben werden. Verwenden Sie Meter.toDp()
, um Meter in dp umzurechnen.
rotate
Mit dem Modifier rotate
wird das angegebene Composable-Element im Raum gedreht. Sie können die Richtung und den Grad der Drehung auf verschiedene Arten angeben:
- Mit Nick-, Gier- und Rollwinkel wird die Drehung um die
x
-,y
- bzw.z
-Achse angegeben. - Mit einer
axisAngle
, die eineVector3
darstellt, die die Rotationsachse angibt, und der Anzahl der Grad, um die rotiert werden soll, - Verwenden Sie eine
Quaternion
, die die Rotation darstellt.
Darstellung von Composables ändern
alpha
Mit dem Modifikator alpha
wird die Deckkraft des Elements und seiner untergeordneten Elemente festgelegt. Dabei steht 0f
für vollständig transparent und 1.0f
für vollständig undurchsichtig.
scale
Mit dem Modifikator scale
wird der Inhalt des Composables entlang der horizontalen, vertikalen und Tiefenachse skaliert.
Composables Verhalten hinzufügen
resizable
Wenn der Modifier resizable
aktiviert ist, werden ziehbare UI-Steuerelemente angezeigt, mit denen der Nutzer die Größe des Elements ändern kann. Das ist vergleichbar mit der Verwendung von ResizableComponent
für eine Entity
.
movable
Wenn der Modifikator movable
aktiviert ist, werden der Komponente UI-Steuerelemente hinzugefügt, mit denen der Nutzer das Element im 3D-Raum verschieben kann. Das ist ähnlich wie die Verwendung von MovableComponent
auf einem Entity
.
In einem movable
-Layoutknoten können optional die Arten von Ebenen angegeben werden, an denen er verankert werden soll, wenn er verschoben wird. So erstellen Sie beispielsweise ein SpatialPanel
, das an Tabellen ausgerichtet wird:
SpatialPanel(
modifier.movable(anchorPlaneSemantics = setOf(PlaneSemantic.TABLE))
) {
// This panel snaps to available planes that are detected as a TABLE.
}
Um an Ebenen auszurichten, muss Ihrer App die android.permission.SCENE_UNDERSTANDING_COARSE
-Laufzeitberechtigung erteilt werden.
Tests und Barrierefreiheit
semantics
Mit dem Modifikator semantics
werden dem Layoutknoten semantische Informationen für Tests und Barrierefreiheit hinzugefügt. Weitere Informationen finden Sie unter Semantik in Jetpack Compose und SemanticsModifier
.
testTag
Der Modifikator testTag
ist eine Kurzform für SemanticsPropertyReceiver.testTag
, mit der Test-Frameworks das Element in Tests finden können.