SubspaceModifier
类似于 Subspace
中可组合项的 Compose 修饰符。借助 SubspaceModifier
,您可以在 3D 空间中操纵可组合项,从而帮助您定位、旋转和向 3D 布局节点添加行为。
布局
默认情况下,Subspace
受建议的应用观看空间的限制。在测量子空间组件的布局时,系统会使用这些边界,这与 2D Compose 布局中的边界类似。
填充边界
修饰符 fillMaxSize
、fillMaxWidth
、fillMaxHeight
和 fillMaxDepth
可使内容(部分)填充其父元素的边界。
使用填充修饰符有助于您的应用布局与 XR 设备的显示特征无关的内容。
设置大小和所需的大小
修饰符 size
、width
、height
和 depth
用于声明内容的偏好大小。如需声明内容的精确大小,请使用 requiredSize
、requiredWidth
、requiredHeight
和 requiredDepth
。这些单位必须以 dp
为单位指定;如需从米转换为 dp,请使用 Meter.toDp()
。
位置可组合项
offset
offset
修饰符可沿 x
、y
和 z
轴在 3D 空间中移动可组合项。这些单位必须以 dp
为单位指定;如需从米转换为 dp,请使用 Meter.toDp()
。
rotate
rotate
修饰符可在空间中旋转给定的可组合项。您可以通过多种方式指定旋转方向和旋转量:
- 使用俯仰、偏航和滚动,分别指定围绕
x
、y
和z
轴的旋转, - 使用
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
的简写形式,可让测试框架在测试中找到相应元素。