Unterraummodifikatoren

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 eine Vector3 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.