子空间修饰符

SubspaceModifier 类似于 Subspace 中可组合项的 Compose 修饰符。借助 SubspaceModifier,您可以在 3D 空间中操纵可组合项,从而帮助您定位、旋转和向 3D 布局节点添加行为。

布局

默认情况下,Subspace建议的应用观看空间的限制。在测量子空间组件的布局时,系统会使用这些边界,这与 2D Compose 布局中的边界类似。

填充边界

修饰符 fillMaxSizefillMaxWidthfillMaxHeightfillMaxDepth 可使内容(部分)填充其父元素的边界。 使用填充修饰符有助于您的应用布局与 XR 设备的显示特征无关的内容。

设置大小和所需的大小

修饰符 sizewidthheightdepth 用于声明内容的偏好大小。如需声明内容的精确大小,请使用 requiredSizerequiredWidthrequiredHeightrequiredDepth。这些单位必须以 dp 为单位指定;如需从米转换为 dp,请使用 Meter.toDp()

位置可组合项

offset

offset 修饰符可沿 xyz 轴在 3D 空间中移动可组合项。这些单位必须以 dp 为单位指定;如需从米转换为 dp,请使用 Meter.toDp()

rotate

rotate 修饰符可在空间中旋转给定的可组合项。您可以通过多种方式指定旋转方向和旋转量:

  • 使用俯仰、偏航和滚动,分别指定围绕 xyz 轴的旋转,
  • 使用 axisAngle(表示旋转轴的 Vector3)以及应围绕该轴旋转的度数,
  • 使用表示旋转的 Quaternion

更改可组合项的外观

alpha

alpha 修饰符用于设置元素及其子级的不透明度,其中 0f 表示完全透明,1.0f 表示完全不透明。

scale

scale 修饰符沿水平轴、垂直轴和深度轴缩放可组合项的内容。

为可组合项添加行为

resizable

启用 resizable 修饰符后,系统会显示可拖动的界面控件,以便用户调整元素大小。这类似于在 Entity 上使用 ResizableComponent

movable

启用 movable 修饰符后,系统会向组件添加界面控件,以便用户在 3D 空间中移动元素。这类似于在 Entity 上使用 MovableComponent

movable 布局节点可以选择指定在移动时应锚定的平面类型。例如,如需创建可贴靠到表格的 SpatialPanel,请执行以下操作:

SpatialPanel(
  modifier.movable(anchorPlaneSemantics = setOf(PlaneSemantic.TABLE))
) {
  // This panel snaps to available planes that are detected as a TABLE.
}

贴靠到平面需要向您的应用授予 android.permission.SCENE_UNDERSTANDING_COARSE 运行时权限

测试和无障碍功能

semantics

semantics 修饰符会向布局节点添加语义,以便用于测试和无障碍功能。请参阅 Jetpack Compose 中的语义SemanticsModifier

testTag

testTag 修饰符是 SemanticsPropertyReceiver.testTag 的简写形式,可让测试框架在测试中找到相应元素。