Jetpack Compose สำหรับ XR
| อัปเดตล่าสุด | รุ่นที่เสถียร | รุ่นที่อาจได้รับการเผยแพร่ | รุ่นเบต้า | รุ่นอัลฟ่า |
|---|---|---|---|---|
| 25 มีนาคม 2026 | - | - | - | 1.0.0-alpha12 |
การประกาศทรัพยากร Dependency
หากต้องการเพิ่มทรัพยากร Dependency ใน XR Compose คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมได้ที่ที่เก็บ Maven ของ Google
เพิ่มทรัพยากร Dependency สำหรับอาร์ติแฟกต์ที่ต้องการในไฟล์ build.gradle สำหรับ
แอปหรือโมดูล
ดึงดูด
dependencies { implementation "androidx.xr.compose:compose:1.0.0-alpha12" // Use to write unit tests testImplementation "androidx.xr.compose:compose-testing:1.0.0-alpha12" }
Kotlin
dependencies { implementation("androidx.xr.compose:compose:1.0.0-alpha12") // Use to write unit tests testImplementation("androidx.xr.compose:compose-testing:1.0.0-alpha12") }
ดูข้อมูลเพิ่มเติมเกี่ยวกับการพึ่งพาได้ที่เพิ่มการพึ่งพาบิลด์
ความคิดเห็น
ความคิดเห็นของคุณช่วยเราปรับปรุง Jetpack ให้ดียิ่งขึ้น โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมี ไอเดียในการปรับปรุงไลบรารีนี้ โปรดดูปัญหาที่มีอยู่ ในไลบรารีนี้ก่อนสร้างปัญหาใหม่ คุณสามารถโหวตปัญหาที่มีอยู่ได้โดย คลิกปุ่มดาว
ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบของเครื่องมือติดตามปัญหา
รุ่น 1.0
เวอร์ชัน 1.0.0-alpha12
25 มีนาคม 2026
androidx.xr.compose:compose:1.0.0-alpha12 และ androidx.xr.compose:compose-testing:1.0.0-alpha12 เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha12 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม
SpatialGltfModelAPI และSpatialGltfModelAnimationAPI เพื่อแสดงผล glTF และควบคุมภาพเคลื่อนไหว เปลี่ยนSpatialGltfModelStateเป็นAutoCloseableตอนนี้คุณจะต้องปิดเพื่อเพิ่มพื้นที่ว่างสำหรับทรัพยากร (I11fde, b/466065486, b/481379924) อย่างไรก็ตาม เราได้ทำเครื่องหมายSpatialGltfModelAPI ว่าถูกจำกัดสำหรับการเปิดตัวนี้ระหว่างรอการทดสอบเพิ่มเติม (Ibf003, b/466090694) - เพิ่มการโอเวอร์โหลดที่ว่างเปล่าที่เลิกใช้งานแล้วสำหรับ
SubspaceModifier.rotate(Idceb6) - เปลี่ยนชื่อฟังก์ชัน
SpatialSmoothFeatheringEffectเป็นspatialSmoothFeatheringEffectและย้ายไปยังโมดูลการวาด อัปเดตSpatialExternalSurfaceค่าการขนนกเริ่มต้นเป็น null ซึ่งจำลองฟังก์ชันการทำงานของ ZeroFeatheringEffect แบบเดิม (I5fdaa, b/460426800) - นำ
onPointSourceParamsAvailableออกแล้ว API การปรับเสียงตามพื้นที่อื่นจะพร้อมใช้งานในอนาคตอันใกล้นี้ (I86507, b/458513439) - เพิ่มลักษณะการทำงาน RTL สำหรับตัวแก้ไขพื้นที่ย่อยออฟเซ็ต นอกจากนี้ยังเพิ่ม
absoluteOffsetเพื่อละเว้นทิศทางเลย์เอาต์ด้วย (I30e4b, b/474409165)
เวอร์ชัน 1.0.0-alpha11
25 กุมภาพันธ์ 2026
androidx.xr.compose:compose:1.0.0-alpha11 และ androidx.xr.compose:compose-testing:1.0.0-alpha11 เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha11 มีการเปลี่ยนแปลงเหล่านี้
ฟีเจอร์ใหม่
- การเพิ่มพารามิเตอร์
SuperSamplingไปยังSpatialExternalSurfaces(Icd4d1)
การเปลี่ยนแปลง API
- การเปลี่ยนแปลงระยะห่างจากขอบของตัวปรับแต่ง Subspace เพื่อให้รับรู้ทิศทางการจัดวาง (I53e25)
SpatialCapabilitiesปิดรับสมัครแล้วและไม่สามารถขยายเวลาได้ (I07aef)- API
SpatialRowและSpatialColumnที่ยอมรับพารามิเตอร์SpatialAlignmentทั่วไปถูกเลิกใช้งานแล้ว โปรดใช้ API ที่ยอมรับverticalAlignmentหรือhorizontalAlignmentสำหรับSpatialRowและSpatialColumnตามลำดับแทน (Iec390) - การรวม API ฟังก์ชันที่โอเวอร์โหลด
SubspaceLayout(Idd30a) - เปลี่ยนชื่อ
SubspaceModifier.lookAtUserเป็นrotateToLookAtUserและพารามิเตอร์upเป็นupDirection(Icafb8) - การทำให้
SpatialRowเป็นฟังก์ชันอินไลน์ (Ia2f20) - ทำให้
SpatialColumnเป็นฟังก์ชันอินไลน์ (I681be) - นำ API ป้ายโฆษณาออก (Ib76cd)
เวอร์ชัน 1.0.0-alpha10
28 มกราคม 2026
androidx.xr.compose:compose:1.0.0-alpha10 และ androidx.xr.compose:compose-testing:1.0.0-alpha10 เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha10 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- การนำ API ที่เลิกใช้งานแล้วออก -
ApplicationSubspace(Ia6596, b/468345186) - อัปเดต
SpatialShapeเป็นอินเทอร์เฟซที่ปิดผนึก (I7e3f5, b/460426800) - การนำ API ที่เลิกใช้งานแล้วออกใน
SpatialAlignment(Ib0b61, b/468011887) - เลิกใช้งาน
SpatialLayoutSpacerและเปิดตัวSpatialSpacer(I2ebf3, b/466071383) - อัปเดต API ของ
UserSubspaceเพื่อแทนที่คำศัพท์ "การล็อกแบบเลื่อน" ด้วย "การล็อกแบบยืดหยุ่น" (I9ded1, b/464035984)
เวอร์ชัน 1.0.0-alpha09
3 ธันวาคม 2025
androidx.xr.compose:compose:1.0.0-alpha09 และ androidx.xr.compose:compose-testing:1.0.0-alpha09 เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha09 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- การเพิ่มตัวแก้ไข
LookAtUserและป้ายโฆษณาซึ่งช่วยให้เนื้อหาหันหน้าไปทางผู้ใช้เสมอ (I49b99) - เพิ่มความสามารถในการตั้งค่า
InteractionPolicyเป็นSpatialExternalSurfacesและSpatialPanelsซึ่งช่วยให้ตรวจจับการคลิกและเหตุการณ์อินพุต 3 มิติอื่นๆ ได้ (Iae155) - เพิ่มขนาดและ
requiredSizeตัวแก้ไขการโอเวอร์โหลดที่มีความกว้าง ความสูง และความลึกเป็นค่า Dp (I92f79) - ตอนนี้อินเทอร์เฟซ
ParentLayoutParamsModifierขยายเวลาเป็นDelegatableSubspaceNodeแล้ว (I1a6d4) ApplicationSubspaceเลิกใช้งานแล้วเพื่อใช้ Subspace API แทน- เราได้เปลี่ยนลักษณะการทำงานของ Subspace API เพื่อให้มีเพียง Subspace ระดับแอปพลิเคชันที่ท่าทางและสเกลที่แนะนำเท่านั้น
- เราได้เปิดตัว
PlanarEmbeddedSubspaceAPI เพื่อจัดเตรียมพื้นที่ย่อยที่ฝังไว้ในบริบท 2 มิติ (Id3343)
- เพิ่มแฟล็ก
shouldAutoInvalidateไปยัง API ของSubspaceModifier.Node(I93902) - เพิ่ม
required(Size|Width|Depth|Height)ใน API ที่อนุญาตให้นักพัฒนาแอปจำกัด@SubspaceComposableขนาดขององค์ประกอบให้อยู่ในช่วงที่เฉพาะเจาะจง โดยไม่คำนึงถึงข้อจำกัดด้านการวัดที่เข้ามาขององค์ประกอบระดับบน (Ifaa78) - เพิ่ม
SubspaceModifier.onSizeChangedที่ให้ Callback ที่เรียบง่ายและมุ่งเน้นสำหรับนักพัฒนาซอฟต์แวร์เพื่อตอบสนองเมื่อขนาดของ@SubspaceComposableเปลี่ยนแปลง (I994f9) - นำ Volume API ออกแล้ว
SceneCoreEntityAPI ควรใช้แทน Volume API (I4162b) - แยก
SubspaceLayoutModifierNode.requestRelayoutเป็นinvalidateMeasurement/invalidatePlacement(I14805) - เพิ่ม
SpatialGltfModelAPI ที่ช่วยให้นักพัฒนาซอฟต์แวร์แสดงผล glTF ใน Compose ได้ (Icc91f) - เปิดตัว
SpatialGltfModelcomposable API สำหรับการแสดงผล glTF ได้อย่างง่ายดาย (Iade67)
การแก้ไขข้อบกพร่อง
- แก้ไขข้อบกพร่องของเลย์เอาต์ใน
SceneCoreEntityตอนนี้ควรจะปฏิบัติตามข้อจำกัดอย่างถูกต้องแล้ว (I11bb8) - ลดระดับโมดูล jxr-compose เป็น
Compile sdk = 34(I2d5db)
เวอร์ชัน 1.0.0-alpha08
22 ตุลาคม 2025
androidx.xr.compose:compose:1.0.0-alpha08 และ androidx.xr.compose:compose-testing:1.0.0-alpha08 เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha08 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- เปลี่ยน
ResizePolicyให้ยอมรับonResizeStart,onResizeUpdateและonResizeEnd(I7e21f)
การแก้ไขข้อบกพร่อง
- ป้องกันไม่ให้เกิดข้อขัดข้องเมื่อทำลายกิจกรรมที่มี Subspace (I595a1)
เวอร์ชัน 1.0.0-alpha07
24 กันยายน 2025
androidx.xr.compose:compose:1.0.0-alpha07 และ androidx.xr.compose:compose-testing:1.0.0-alpha07 เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha07 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ปรับปรุงเอกสารประกอบของ Kotlin สำหรับ
SpatialMainPanel(I27b70, b/444467891) - เปิดตัว
SpatialArrangementสำหรับจัดเรียงองค์ประกอบย่อยตามแกนหลักในเลย์เอาต์ 3 มิติ เช่นSpatialRowและSpatialColumnAPI ใหม่นี้มีตัวเลือกการจัดเรียงที่คุ้นเคยจาก Compose 2 มิติ ซึ่งรวมถึงStart,End,Center,SpaceBetween,SpaceAroundและSpaceEvenlyโดยรองรับทั้งทิศทางการจัดวางจากซ้ายไปขวา (LTR) และจากขวาไปซ้าย (RTL) อย่างเต็มรูปแบบ (I7db38, b/436289959) - เพิ่มอินเทอร์เฟซพื้นฐานสำหรับ
SubspaceModifier.Nodeเพื่อปรับปรุงความปลอดภัยในการกำหนดประเภทและความสามารถในการใช้งานของอินเทอร์เฟซส่วนขยาย เช่นCompositionLocalConsumerSubspaceModifierNodeLayoutCoordinatesAwareModifierNodeSubspaceLayoutModifierNodeCoreEntityNode(ภายใน) (Iede00, b/440599394, b/440599394)
- ยกเลิกการจำกัด
SpatialExternalSurface(I33315, b/439646773) - แนะนำ
SubspaceModifierให้กับ Subspace composables และแทนที่พารามิเตอร์ข้อจำกัดด้วยSubspaceModifierที่มีSubspaceModifiersที่เกี่ยวข้องกับขนาด หากallowUnboundedSubspaceเป็นจริง Subspaces จะยังมีข้อจำกัดที่ไม่จำกัดได้ (Ib06e6, b/433331675) - เลิกใช้งาน
SubspaceModifiersที่ย้ายและปรับขนาดได้เนื่องจากDragPolicy()และResizePolicy()เป็นส่วนหนึ่งของSpatialPanelและSpatialExternalSurfaceAPI แล้ว (I397bf, b/437924639) - เพิ่มการรองรับ
LayoutDirectionในเลย์เอาต์เชิงพื้นที่ ตอนนี้การใช้SpatialAlignmentที่ประกอบได้จะวางตำแหน่งองค์ประกอบอย่างถูกต้องในบริบท LTR และ RTL (I964bb, b/436300273) - เพิ่มพารามิเตอร์ที่ปรับขนาดและย้ายได้ลงใน
PanelAPI เพื่อให้มั่นใจว่าลักษณะการทำงานเหล่านี้จะใช้ได้กับคอนเทนเนอร์ที่รองรับเท่านั้น (Id491c) - เพิ่ม
sizeIn,widthIn,heightIn,depthInSubspaceModifiersที่ช่วยให้คุณกำหนดข้อจำกัดขั้นต่ำและสูงสุดที่แน่นอนสำหรับความกว้าง ความสูง และความลึกได้ (I1af09, b/433330761)
เวอร์ชัน 1.0.0-alpha06
13 สิงหาคม 2025
androidx.xr.compose:compose:1.0.0-alpha06 และ androidx.xr.compose:compose-testing:1.0.0-alpha06 เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha06 มีการเปลี่ยนแปลงเหล่านี้
การแก้ไขข้อบกพร่อง
- สร้าง
ComposeXrOwnerLocalsใหม่เมื่อมีการทำลายเจ้าของวงจร (9123ce1)
เวอร์ชัน 1.0.0-alpha05
30 กรกฎาคม 2025
androidx.xr.compose:compose:1.0.0-alpha05 และ androidx.xr.compose:compose-testing:1.0.0-alpha05 เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha05 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ทำให้คลาสคำอธิบายประกอบ
SubspaceComposableเป็นแบบสาธารณะ (Ic2a34, b/399432430) SpatialExternalSurfaceComposable ใหม่ 2 รายการที่แสดงทรงกลม 180 และ 360 องศา (I40ef2, b/391705799)- เพิ่ม
SubspaceModifier.aspectRatio(Ide5ab, b/399729509, b/414762147) - เพิ่ม
SceneCoreEntityAPI เพื่อปรับปรุงความสามารถในการทำงานร่วมกันระหว่างSceneCoreกับ Compose สำหรับ XR (I50bb3, b/423020989) - จัดเตรียม
GravityAlignedsubspaceAPI เพื่อรองรับฟีเจอร์GravityAlignedที่ไม่มีการปรับขนาด (I07359)
การเปลี่ยนแปลง API
SpatialDialog()จะทำตามการกำหนดค่าการกดของSpatialDialogProperties.dismissOnBack(Ib453b, b/416797132)- อัปเดต
minimumPanelDimensionเป็นขนาดมิติข้อมูลเริ่มต้นใหม่ที่Dimensions(0.1f, 0.1f, 0.1f)เนื่องจากมีการแสดงผลเป็นเมตร (Ib852a) - ตอนนี้ Subspace และ Orbiter จะยังคงสถานะภายในไว้ในพื้นที่บ้านและเมื่อแอปทำงานในเบื้องหลัง ในโหมดพื้นที่หน้าหลัก Subspace จะยังคงตั้งค่าฉากเพื่อเตรียมพร้อมสำหรับการเปลี่ยนไปใช้โหมดพื้นที่เต็ม (I40317, b/416037751)
- ตอนนี้
SpatialDialogsจะยังคงสถานะไว้เมื่อแอปทำงานในเบื้องหลัง (I6aa56) - ตอนนี้
ApplicationSubspaceจะรับช่วงขนาดและตำแหน่งที่แนะนำจากระบบ (I4565f, b/418834194) - เพิ่มข้อความแสดงข้อผิดพลาดที่ดีขึ้นและทริกเกอร์ข้อผิดพลาดก่อนหน้านี้เมื่อใช้
SubspaceComposableในบริบทที่ไม่ใช่SubspaceComposable(Iee2ae, b/416484684) - อัปเดต
ExperimentalSubspaceVolumeApiจากคำเตือนเป็นข้อผิดพลาดเนื่องจากมักจะมองข้ามคำเตือนเมื่อใช้ API ที่ประกอบได้ในทางที่ผิด (I427aa, b/424864286) - ตอนนี้ Subspace และ
ApplicationSubspaceถูกจำกัดโดยrecommendedContentBoxInFullSpaceแล้ว ก่อนหน้านี้จะถูกจำกัดด้วยขอบเขตการมองเห็นของSpatialUser(I41015, b/423074142) - อัปเดต
SpatialElevationเพื่อใช้ขนาดขั้นต่ำเพื่อไม่ให้ใช้ขนาดที่ฮาร์ดโค้ดอีกต่อไป (I2dbe6, b/427785338) - อัปเดตวิธีที่เราใช้การทดสอบ
SpatialAcitivityPanelเพื่ออัปเดตเมื่อมีการแก้ไขตัวแปรสำคัญ (I0f64d, b/427999029) - นำ
VolumeConstraints.Unboundedออกเพื่อตั้งค่าข้อจำกัดเริ่มต้นให้เทียบเท่ากัน (Ie24ec, b/407938414) SpatialFeatheringSizeไม่เป็นสาธารณะอีกต่อไป (I1c15b, b/399432430)- เปลี่ยนชื่อ XR
Placeableเป็นSubspacePlaceableเพื่อให้แตกต่างจากPlaceableของ Compose (I74874) - นำการตั้งค่า Orbiter ออกและเพิ่ม
shouldRenderInNonSpatialเป็นพารามิเตอร์ใหม่ นอกจากนี้ ยังนำคลาสEdgeOffsetออกและเพิ่มorbiterOffsetTypeเป็นพารามิเตอร์ใหม่เพื่อรวมฟังก์ชันOrbiter()รวมถึงเปลี่ยนชื่อOrbiterEdgeเป็นContentEdge(Iebf3d) - เปลี่ยนชื่อ
Measurableเป็นSubspaceMeasurableเพื่อแยกความแตกต่างของประเภทจากประเภทMeasurableของ Compose (I9726c) - เปลี่ยนชื่อ
MeasureResultเป็นSubspaceMeasureResult(I9f34d) - นำ
setSubspaceContentAPI ออกเพื่อใช้setContentของ Compose กับ ComposableSubspace(Ifff4c, b/421427391, b/421427391) - เปลี่ยนชื่อ
MeasurePolicyเป็นSubspaceMeasurePolicyแล้ว (I37a9b, b/422553904) - เปลี่ยน
SubspaceSemanticsInfoเป็นอินเทอร์เฟซที่ปิดสนิทเนื่องจากเราจะเพิ่มสมาชิกไม่ได้หากไม่มีค่าเริ่มต้น (I372f9, b/423704068) - อัปเดตเอกสาร
SpatialExternalSurfaceเปลี่ยนชื่อContentSecurityLevelเป็นSurfaceProtection(I3c460, b/420982808) - มีตัวสร้างที่โอเวอร์โหลดสำหรับตัวปรับแต่งที่เคลื่อนย้ายได้ซึ่งอนุญาตการยึด (Ic0c70)
- เพิ่มผู้ให้บริการตำแหน่งสำหรับเคล็ดลับเครื่องมือ เพื่อให้นักพัฒนาแอปควบคุมได้ว่าเคล็ดลับเครื่องมือจะอยู่เหนือ ใต้ ซ้าย หรือขวาของจุดยึด เพิ่ม API ที่รับ Shape สำหรับแคร์เร็ต เพื่อให้ระบุรูปร่างที่กำหนดเองได้มากขึ้น (Ie513c, b/374766087, b/418854637)
- นำ
CoreEntityออกจากPublishedApi(Ifee05)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่
SpatialDialogจะกะพริบเมื่อแสดงผล (Ife73c, b/401619909) - แก้ไขปัญหาที่
SpatialDialogไม่สามารถปิดบังแผงกิจกรรมได้ (I8ca6c, b/367442109) - แก้ไขกล่องโต้ตอบ XR ไม่แสดงเนื้อหาบางอย่าง (I17cd5, b/418062437)
- แก้ปัญหาที่ระบบปิด
SpatialPopupเมื่อคลิกภายในเนื้อหา (If262c, b/417245722) - แก้ไขปัญหาที่เมื่อต่อเชน
resizable().movable()SpatialPanel จะปรับขนาดเป็นขนาดใหม่ไม่ถูกต้อง (I02ee3, b/422264230) - แก้ไข
topBarทับซ้อนกับเมนูในSpatialComposeVideoPlayer(Id33bc, b/427168167) - แก้ไขรัศมีมุมที่แสดงผลไม่ถูกต้อง (I975fe, b/428261830)
เวอร์ชัน 1.0.0-alpha04
7 พฤษภาคม 2025
androidx.xr.compose:compose:1.0.0-alpha04 และ androidx.xr.compose:compose-testing:1.0.0-alpha04 เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha04 มีการเปลี่ยนแปลงเหล่านี้
ฟีเจอร์ใหม่
- เพิ่มอินเทอร์เฟซ
CompositionLocalConsumerSubspaceModifierNodeเพื่ออนุญาตให้ประเภทSubspaceModifierที่กำหนดเองเข้าถึงค่าในเครื่องขององค์ประกอบ - เพิ่ม
SpatialPanelAPI ใหม่ที่ใช้รูปแบบการใช้งานของ ComposeAndroidViewและเลิกใช้งานViewBased SpatialPanelก่อนหน้า - เพิ่มออบเจ็กต์เสริม
VolumeConstraints.Unboundedซึ่งแสดงข้อจำกัดที่ไม่จำกัด - เพิ่ม
SubspaceModifier.onPointSourceParamsเพื่ออนุญาตแหล่งเสียงเชิงพื้นที่ - มีการเพิ่ม
ApplicationSubspaceสาธารณะ ซึ่งมีVolumeConstraintsที่ไม่บังคับเพื่อกำหนดพื้นที่ 3 มิติที่แอปแสดงเนื้อหาเชิงพื้นที่ได้ โดยค่าเริ่มต้น หากไม่ได้ระบุข้อจำกัดใดๆ Subspace จะถูกจำกัดด้วยขอบเขตการมองเห็นปัจจุบันของSpatialUserในความกว้างและความสูง ผู้ใช้สามารถระบุข้อจำกัดที่จะใช้ได้หากไม่สามารถกำหนดขอบเขตการมองเห็นได้ ไม่เช่นนั้น ระบบจะใช้ค่าความกว้างและความสูงของขอบเขตการมองเห็นเริ่มต้น - เพิ่ม
SpatialExternalSurfaceซึ่งใช้ในการแสดงเนื้อหาสามมิติได้SpatialExternalSurfaceปรับแต่งได้ด้วยตัวแก้ไข (ยกเว้นอัลฟ่า) และเอฟเฟกต์ขนนกที่ขอบ - เพิ่ม
pointerHoverIconตัวปรับเปลี่ยนพื้นที่ย่อยใหม่ที่ช่วยให้ผู้ใช้ตั้งค่าไอคอนสำหรับเคอร์เซอร์เชิงพื้นที่ได้
การเปลี่ยนแปลง API
- นำข้อจำกัด
RequiresApi(34)ออกจากแพ็กเกจ Jetpack XR ทั้งหมด การจำกัดนี้ซ้ำซ้อนเนื่องจากปัจจุบัน Jetpack XR ใช้ได้เฉพาะในอุปกรณ์ที่มีระดับ API 34 ขึ้นไปเท่านั้น (Iae0f8) - โปรเจ็กต์ที่เผยแพร่ด้วย Kotlin 2.0 ต้องใช้ KGP 2.0.0 ขึ้นไป (Idb6b5)
- ตอนนี้การจัดการย้อนกลับจะทำงานในแผงเชิงพื้นที่ได้โดยไม่ต้องมีกิจกรรมที่ฝังไว้ หากต้องการให้การจัดการย้อนกลับทำงาน คุณต้องระบุ
android:enableOnBackInvokedCallback="true"ใน Android Manifest - ตอนนี้การจัดการย้อนกลับจะใช้ได้กับกล่องโต้ตอบเชิงพื้นที่แล้ว หากต้องการให้การจัดการย้อนกลับทำงาน คุณต้องระบุ
android:enableOnBackInvokedCallback="true"ในไฟล์ Manifest ของ Android - ตอนนี้
SpatialPanelที่อิงตาม Compose และอิงตาม View สามารถปรับขนาดได้ตามเนื้อหา - ตอนนี้ นักพัฒนาแอปสามารถกำหนดค่า
SpatialElevationLevelที่กำหนดเองได้แล้ว และไม่จำกัดเฉพาะระดับที่กำหนดไว้ล่วงหน้า - ตอนนี้คุณปรับแต่งระดับความสูงของ Orbiter ได้แล้วผ่านพารามิเตอร์
elevation - ตอนนี้ Subspace สามารถจำกัดด้วย
SpatialUserขอบเขตการมองเห็นของกล้องในความกว้างและความสูงได้โดยค่าเริ่มต้น หากกำหนดขอบเขตการมองเห็นไม่ได้ ระบบจะใช้ค่าความกว้างและความสูงของขอบเขตการมองเห็นเริ่มต้น - เพิ่มการเรียกกลับใหม่
onMoveStartและonMoveEndลงในตัวแก้ไขMovableระบบจะเรียกใช้การเรียกกลับonMoveStartและonMoveEndเมื่อผู้ใช้เริ่มและหยุดการย้ายช่องว่างย่อยที่ประกอบได้ด้วยตัวแก้ไขที่เคลื่อนย้ายได้ - พารามิเตอร์
nameถูกนำออกจาก Spatial API เช่นSpatialRowและSpatialPanelหากต้องการแก้ไขข้อบกพร่องของโครงสร้างต้นไม้ Spatial Compose ให้ใช้SubspaceModifier.testTagแทน - นำการโอเวอร์โหลดที่ไม่รองรับของ
SpatialPopupที่มีเฉพาะspatialElevationLevelและcontentออก โปรดใช้อินเทอร์เฟซที่รองรับonDimissRequest - ระบบได้นำการเรียกกลับ
onPoseChangeจากตัวแก้ไขที่เคลื่อนย้ายได้ออกแล้ว โปรดใช้onMoveแทน SubspaceModifiersจะไม่มีผลอีกต่อไปหากมีการแยกออกหรือกำลังแยกออก- เราได้แบ่ง
SpatialRowAPI ที่มีอยู่เป็นSpatialRowและSpatialCurvedRowหากก่อนหน้านี้ใช้พารามิเตอร์SpatialRowcurveRadiusให้ใช้SpatialCurvedRowแทน ซึ่งมีลักษณะการทำงานเหมือนกัน MainPanelและActivityPanelจะไม่มีแถบชื่ออีกต่อไปเมื่อเรียกใช้ในอิมเมจระบบที่เพิ่งอัปเดตในลักษณะเดียวกัน- ตอนนี้ตัวปรับอัลฟ่าและตัวปรับสเกลสามารถซ้อนกันได้ และจะคูณค่าของตัวปรับเหล่านั้นเพื่อให้ได้ค่าอัลฟ่าหรือค่าสเกลสุดท้ายที่ใช้
onPoseChangeการเรียกกลับจากตัวแก้ไขที่เคลื่อนย้ายได้ได้รับการเพิ่มประสิทธิภาพเพื่อให้การเคลื่อนไหวของท่าทางราบรื่นยิ่งขึ้น- ตอนนี้ตัวแก้ไขที่ย้ายและปรับขนาดได้จะเรียกใช้ฟังก์ชันเรียกกลับในเทรดหลักเพื่อให้มั่นใจว่าการเปลี่ยนแปลงสถานะจะทริกเกอร์การประกอบใหม่
- เพิ่มการสังเกตสถานะในเลย์เอาต์และเฟสการวัดเพื่อให้แน่ใจว่าการเปลี่ยนแปลงสถานะใน
SubspaceLayoutจะทริกเกอร์การจัดเลย์เอาต์ใหม่ - อัปเดตเชนตัวปรับที่เพิ่มประสิทธิภาพเพื่อนำตัวปรับที่มีอยู่กลับมาใช้ซ้ำได้ดียิ่งขึ้น
การแก้ไขข้อบกพร่อง
- หยุดการแสดงเลเยอร์ทึบเมื่อแสดง
SpatialDialog(Ic4594) - ตอนนี้ระบบจะไม่สนใจคำขอเลย์เอาต์ใหม่ที่ส่งขณะที่โหนดตัวแก้ไขไม่ได้เชื่อมต่อแล้ว
- นำเฟสการจัดเลย์เอาต์ใหม่ที่ทริกเกอร์โดยตัวปรับแต่งที่ย้ายและปรับขนาดได้ออก
- แก้ไขข้อขัดข้องใน
MainPanel()ที่ประกอบได้ซึ่งเกิดขึ้นเมื่อตั้งค่ามิติข้อมูลใดมิติข้อมูลหนึ่งเป็น 0 ไม่ว่าจะโดยตรงหรือระหว่างการคำนวณเลย์เอาต์ เช่น การคำนวณSpatialRow/SpatialColumnตอนนี้ระบบจะซ่อนแผงแทน โปรดทราบว่าการแก้ไขนี้จะแก้ปัญหาการขัดข้องในระหว่างขั้นตอนการจัดวางโดยเฉพาะ ส่วนการปรับขนาดแผงเป็น 0 ผ่านการโต้ตอบของผู้ใช้จะได้รับการจัดการแยกต่างหาก แผงที่ซ่อนไม่มีความสามารถในการใช้งาน UI - แก้ไขปัญหาเกี่ยวกับ
maintainAspectRatioจากตัวปรับขนาดที่ปรับขนาดได้ ตอนนี้สัดส่วนภาพควรจะคงเดิม - แก้ไขปัญหาเกี่ยวกับพื้นที่ย่อยที่ซ้อนกันซึ่งจะวางตำแหน่งไม่ถูกต้องสำหรับเฟรมเดียว
- แก้ไขปัญหาที่บางครั้งระบบไม่ใช้มุมโค้งเมื่อควรใช้
NestedSubspacesจะไม่ปรากฏในเฟรมเดียวในตำแหน่งที่ไม่ถูกต้องอีกต่อไป
เวอร์ชัน 1.0.0-alpha03
26 กุมภาพันธ์ 2025
androidx.xr.compose:compose:1.0.0-alpha03 และ androidx.xr.compose:compose-testing:1.0.0-alpha03 จะเปิดตัวโดยไม่มีการเปลี่ยนแปลงที่สำคัญนับตั้งแต่เวอร์ชันอัลฟ่าล่าสุด เวอร์ชัน 1.0.0-alpha03 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.0.0-alpha02
12 กุมภาพันธ์ 2025
androidx.xr.compose:compose:1.0.0-alpha02 และ androidx.xr.compose:compose-testing:1.0.0-alpha02 เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha02 มีการเปลี่ยนแปลงเหล่านี้
ฟีเจอร์ใหม่
- ตอนนี้แผงกิจกรรมสามารถปิดทึบเนื้อหาเมื่อเปิดใช้งานกล่องโต้ตอบเชิงพื้นที่
- ตอนนี้คุณใช้
OrbiterAPI ในบริบทSubspaceComposableได้แล้ว และจะแนบ Orbiters กับองค์ประกอบหลักที่ใช้SubspaceLayoutที่ใกล้ที่สุด - เปิดตัว
LayoutCoordinatesAwareModifierNodeเพื่ออนุญาตตัวแก้ไขตามตำแหน่งที่กำหนดเอง - เพิ่มวิธีการวงจรการแนบ/ถอดออกไปยัง
SubspaceModifier.Node - เพิ่ม
scaleWithDistanceลงในตัวปรับแต่งที่เคลื่อนย้ายได้ เมื่อเปิดใช้scaleWithDistanceองค์ประกอบของพื้นที่ย่อยที่ย้ายจะขยายหรือหด นอกจากนี้ยังคงรักษาสเกลที่ชัดเจนซึ่งมีอยู่ก่อนการเคลื่อนไหวด้วย
การเปลี่ยนแปลง API
- นำ
SessionCallbackProviderออกเพื่อใช้SpatialCapabilitiesแทน
การเปลี่ยนแปลงอื่นๆ
- ลด
minSDKเหลือ 24 API ของ Jetpack XR ทั้งหมดจะยังคงต้องใช้ API 34 ในรันไทม์ OrbiterEdgeOffset.inner,EdgeOffset.outerและEdgeOffset.overlapไม่ใช่@Composableเมธอดอีกต่อไป ซึ่งทำให้ใช้ในบริบทที่ไม่สามารถคอมโพสได้- อัปเดตระดับความสูงเชิงพื้นที่ให้ตรงกับข้อกำหนด UX ล่าสุด
- ติดตั้งใช้งานอินเทอร์เฟซ
SubspaceSemanticsInfoในMeasurableLayout - เปลี่ยนชื่อ
SubspaceModifierElementเป็นSubspaceModifierNodeElementแล้ว
แก้ไขข้อบกพร่อง
- แก้ไขเพื่อทำให้การสั่งซื้อ
SubspaceModifierเสถียรSubspaceModifierควรทำงานได้อย่างน่าเชื่อถือมากขึ้น ตอนนี้คุณควรใช้ตัวปรับแต่งออฟเซ็ต หมุน ปรับขนาด เคลื่อนย้ายได้ และปรับขนาดได้ในลำดับใดก็ได้
เวอร์ชัน 1.0.0-alpha01
12 ธันวาคม 2024
androidx.xr.compose:compose-*1.0.0-alpha01 ได้รับการเผยแพร่แล้ว
ฟีเจอร์ของรุ่นแรก
การเปิดตัว Jetpack Compose สำหรับ XR เวอร์ชันนักพัฒนาครั้งแรก ใช้แนวคิด Compose ที่คุ้นเคย เช่น แถวและคอลัมน์ เพื่อสร้างเลย์เอาต์ UI เชิงพื้นที่ใน XR ไม่ว่าคุณจะพอร์ตแอป 2 มิติที่มีอยู่ไปยัง XR หรือสร้างแอป XR ใหม่ตั้งแต่ต้น ไลบรารีนี้มี Subspace และ Spatial Composables เช่น แผงเชิงพื้นที่และ Orbiters ซึ่งช่วยให้คุณวาง UI ที่มีอยู่แบบ 2D Compose หรือ UI ที่อิงตาม View ในเลย์เอาต์เชิงพื้นที่ได้ โดยจะแนะนำ Volume subspace composable ซึ่งช่วยให้คุณวางเอนทิตี SceneCore เช่น โมเดล 3 มิติ ไว้สัมพันธ์กับ UI ได้ ดูข้อมูลเพิ่มเติมในคู่มือนักพัฒนาซอฟต์แวร์นี้
Subspace: วัตถุที่ใช้ร่วมกันนี้สามารถวางได้ทุกที่ภายในลำดับชั้น UI ของแอป ซึ่งช่วยให้คุณรักษาเลย์เอาต์สำหรับ UI 2 มิติและเชิงพื้นที่ได้โดยไม่สูญเสียบริบทระหว่างไฟล์ ซึ่งจะช่วยให้แชร์สิ่งต่างๆ เช่น สถาปัตยกรรมของแอปที่มีอยู่ระหว่าง XR กับอุปกรณ์รูปแบบอื่นๆ ได้ง่ายขึ้นโดยไม่ต้องยกสถานะผ่านทั้งโครงสร้าง UI หรือปรับโครงสร้างแอปใหม่SpatialPanel: SpatialPanel เป็น Subspace Compositable ที่ให้คุณแสดงเนื้อหาแอปได้ เช่น คุณอาจแสดงการเล่นวิดีโอ ภาพนิ่ง หรือเนื้อหาอื่นๆ ใน SpatialPanel
Orbiter: Orbiter คือคอมโพเนนต์ UI เชิงพื้นที่ โดยออกแบบมาให้แนบกับแผงเชิงพื้นที่ที่เกี่ยวข้อง และมีรายการการนำทางและการดำเนินการตามบริบทที่เกี่ยวข้องกับแผงเชิงพื้นที่นั้น เช่น หากคุณสร้างแผงเชิงพื้นที่เพื่อแสดงเนื้อหาวิดีโอ คุณจะเพิ่มตัวควบคุมการเล่นวิดีโอภายในออบิเตอร์ได้
ระดับเสียง: วางเอนทิตี SceneCore เช่น โมเดล 3 มิติ เทียบกับ UI
เลย์เอาต์เชิงพื้นที่ คุณสร้างแผงเชิงพื้นที่หลายแผงและวางไว้ภายในเลย์เอาต์เชิงพื้นที่ได้โดยใช้
SpatialRow,SpatialColumn,SpatialBoxและSpatialLayoutSpacerใช้SubspaceModifiers เพื่อปรับแต่งเลย์เอาต์คอมโพเนนต์ UI เชิงพื้นที่: องค์ประกอบเหล่านี้สามารถนำกลับมาใช้ซ้ำใน UI 2 มิติได้ และจะมองเห็นแอตทริบิวต์เชิงพื้นที่ได้ก็ต่อเมื่อเปิดใช้ความสามารถเชิงพื้นที่เท่านั้น
SpatialDialog: แผงจะเลื่อนกลับไปเล็กน้อยในแนวลึกเพื่อแสดงกล่องโต้ตอบที่ยกระดับSpatialPopUp: แผงจะเลื่อนกลับไปเล็กน้อยในความลึกของแกน Z เพื่อแสดงป๊อปอัปที่เลื่อนขึ้นSpatialElevation: ตั้งค่าSpatialElevationLevelเพื่อเพิ่มระดับความสูง
SpatialCapabilities: ความสามารถเชิงพื้นที่อาจเปลี่ยนแปลงได้เมื่อผู้ใช้โต้ตอบกับแอปหรือระบบ หรือแม้แต่แอปของคุณเองก็เปลี่ยนได้ เช่น การย้ายไปที่ Home Space หรือ Full Space แอปของคุณต้องตรวจสอบ
LocalSpatialCapabilities.currentเพื่อพิจารณาว่า API ใดบ้างที่รองรับในสภาพแวดล้อมปัจจุบัน เพื่อหลีกเลี่ยงปัญหาisSpatialUiEnabled: องค์ประกอบ UI เชิงพื้นที่ (เช่น SpatialPanel)isContent3dEnabled: ออบเจ็กต์ 3 มิติisAppEnvironmentEnabled: สภาพแวดล้อมisPassthroughControlEnabled: แอปพลิเคชันควบคุมสถานะการแสดงภาพได้หรือไม่isSpatialAudioEnabled: เสียงรอบทิศทาง
ปัญหาที่ทราบ
- ปัจจุบันต้องใช้ minSDK 30 เพื่อใช้ Jetpack Compose สำหรับ XR วิธีแก้ปัญหาชั่วคราวคือคุณอาจเพิ่มรายการไฟล์ Manifest ต่อไปนี้
<uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>เพื่อให้สามารถสร้างและเรียกใช้ด้วย minSDK 23 ได้ - ปัจจุบันแอป Jetpack XR ต้องขอสิทธิ์
android.permission.SCENE_UNDERSTANDINGใน AndroidManifest - เมื่อแอปเปิดตัวใน Full Space โดยตรงโดยใช้พร็อพเพอร์ตี้
PROPERTY_XR_ACTIVITY_START_MODEในไฟล์ Manifest ระบบจะเปิดกิจกรรม/แอปพลิเคชันใน Home Space ก่อน จากนั้นจึงเปลี่ยนไปเป็น Full Space - glTF ใน Volume Composables อาจกะพริบในตำแหน่งที่ไม่ถูกต้องในตอนแรก
- การใช้ SpatialDialog ในแผงที่ย้ายไปไกลมากจะทำให้เนื้อหาไปในทิศทางที่ไม่ถูกต้อง