SubspaceModifier
คล้ายกับตัวแก้ไข Compose สำหรับ Composable
ใน Subspace
SubspaceModifier
ช่วยให้คุณจัดการ Composable ในพื้นที่ 3 มิติ
ได้ ซึ่งจะช่วยให้คุณจัดวาง หมุน และเพิ่มลักษณะการทำงานให้กับโหนดเลย์เอาต์ 3 มิติได้
การจัดวาง
โดยค่าเริ่มต้น Subspace
จะอยู่ในพื้นที่ที่แนะนำสำหรับการดูแอป ขอบเขตเหล่านี้จะใช้เมื่อวัดเลย์เอาต์ของคอมโพเนนต์พื้นที่ย่อย ซึ่งคล้ายกับขอบเขตในเลย์เอาต์ Compose แบบ 2 มิติ
ขอบเขตการเติม
ตัวแก้ไข fillMaxSize
, fillMaxWidth
, fillMaxHeight
และ
fillMaxDepth
จะทำให้เนื้อหา (บางส่วน) เติมเต็มขอบเขตขององค์ประกอบระดับบน
การใช้ตัวแก้ไขการเติมจะช่วยให้เลย์เอาต์ของแอปแสดงเนื้อหาที่ไม่ขึ้นอยู่กับลักษณะการแสดงผลของอุปกรณ์ XR
ตั้งค่าขนาดและขนาดที่จำเป็น
ตัวแก้ไข size
, width
, height
และ depth
จะประกาศขนาดที่ต้องการของเนื้อหา หากต้องการประกาศขนาดที่แน่นอนของเนื้อหา ให้ใช้ requiredSize
, requiredWidth
,
requiredHeight
และ requiredDepth
ต้องระบุหน่วยเหล่านี้
ใน dp
หากต้องการแปลงจากเมตรเป็น dp ให้ใช้ Meter.toDp()
คอมโพเนนต์ตำแหน่ง
offset
ตัวแก้ไข offset
จะย้าย Composable ในพื้นที่ 3 มิติไปตามแกน x
, y
และ z
ต้องระบุหน่วยเหล่านี้ใน dp
หากต้องการแปลงจากเมตรเป็น
dp ให้ใช้ Meter.toDp()
rotate
ตัวแก้ไข rotate
จะหมุน Composable ที่ระบุในพื้นที่ คุณ
ระบุทิศทางและจำนวนการหมุนได้หลายวิธีดังนี้
- ใช้ระดับความสูงต่ำ การเอียง และการหมุน ซึ่งระบุการหมุนรอบแกน
x
,y
และz
ตามลำดับ - การใช้
axisAngle
ซึ่งเป็นVector3
ที่แสดงแกนของการหมุน และจำนวนองศาที่ควรหมุนรอบ - โดยใช้
Quaternion
ที่แสดงถึงการหมุนเวียน
เปลี่ยนลักษณะที่ปรากฏของ Composable
alpha
ตัวแก้ไข alpha
จะกำหนดความทึบแสงขององค์ประกอบและองค์ประกอบย่อย
โดย 0f
หมายถึงโปร่งใสโดยสมบูรณ์ และ 1.0f
หมายถึงทึบแสงโดยสมบูรณ์
scale
ตัวแก้ไข scale
จะปรับขนาดเนื้อหาของ Composable ตามแกนแนวนอน แนวตั้ง และความลึก
เพิ่มลักษณะการทำงานให้กับ Composable
resizable
เมื่อเปิดใช้ตัวแก้ไข resizable
ระบบจะแสดงตัวควบคุม UI ที่ลากได้ซึ่งอนุญาตให้ผู้ใช้ปรับขนาดองค์ประกอบ ซึ่งคล้ายกับการใช้
ResizableComponent
ใน Entity
movable
เมื่อเปิดใช้ตัวแก้ไข movable
ระบบจะเพิ่มตัวควบคุม UI ลงใน
คอมโพเนนต์ซึ่งจะช่วยให้ผู้ใช้ย้ายองค์ประกอบในพื้นที่ 3 มิติได้ ซึ่งคล้ายกับการใช้ MovableComponent
ใน Entity
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
ซึ่งช่วยให้เฟรมเวิร์กการทดสอบค้นหา
องค์ประกอบในการทดสอบได้