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
修飾符後,系統會顯示可拖曳的 UI 控制項,讓使用者調整元素大小。這與在 Entity
上使用 ResizableComponent
類似。
movable
啟用 movable
修飾符後,系統會在元件中加入 UI 控制項,讓使用者在 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
的簡寫,可讓測試架構在測試中找到元素。