Jetpack Compose สำหรับ XR
| อัปเดตล่าสุด | รุ่นที่เสถียร | รุ่นที่อาจได้รับการเผยแพร่ | รุ่นเบต้า | รุ่นอัลฟ่า |
|---|---|---|---|---|
| 23 กันยายน 2026 | - | - | 1.0.0-beta01 | - |
การประกาศทรัพยากร Dependency
หากต้องการเพิ่มทรัพยากร Dependency ใน XR Compose คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมได้ที่ที่เก็บ Maven ของ Google
เพิ่มทรัพยากร Dependency สำหรับอาร์ติแฟกต์ที่ต้องการในไฟล์ build.gradle สำหรับ
แอปหรือโมดูล
ดึงดูด
dependencies { implementation "androidx.xr.compose:compose:1.0.0-beta01" // Use to write unit tests testImplementation "androidx.xr.compose:compose-testing:1.0.0-beta01" }
Kotlin
dependencies { implementation("androidx.xr.compose:compose:1.0.0-beta01") // Use to write unit tests testImplementation("androidx.xr.compose:compose-testing:1.0.0-beta01") }
ดูข้อมูลเพิ่มเติมเกี่ยวกับการพึ่งพาได้ที่เพิ่มการพึ่งพาบิลด์
ความคิดเห็น
ความคิดเห็นของคุณช่วยให้ Jetpack ทำงานได้ดีขึ้น โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมี ไอเดียในการปรับปรุงไลบรารีนี้ โปรดดู ปัญหาที่มีอยู่ ในไลบรารีนี้ก่อนสร้างปัญหาใหม่ คุณสามารถโหวตปัญหาที่มีอยู่ได้โดย คลิกปุ่มดาว
ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบของ Issue Tracker
รุ่น 1.0
เวอร์ชัน 1.0.0-beta01
23 กันยายน 2026
androidx.xr.compose:compose:1.0.0-beta01 และ androidx.xr.compose:compose-testing:1.0.0-beta01 เปิดตัวแล้ว เวอร์ชัน 1.0.0-beta01 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- นำ
DragPolicyที่เลิกใช้งานแล้วออก โปรดใช้SubspaceModifier.movable()แทน (I108d4) - นำ
ResizePolicyที่เลิกใช้งานแล้วและวิธีใช้งานในSpatialPanelและSpatialExternalSurfaceออก นำSubspaceModifier.resizableฟังก์ชันที่เลิกใช้งานแล้วออก โปรดใช้SubspaceModifier.resizableใหม่กับResizePolicyใหม่แทน (I59e6b) - เพิ่มพารามิเตอร์
isPitchUpdateEnabledเพื่ออนุญาตให้เปิดหรือ ปิดใช้การติดตามระดับเสียงแยกกัน (Ie9e86) - นำค่า Null ออกจาก
pitchLimitsและเปลี่ยนชื่อPitchLimits.UNCONSTRAINEDเป็นPitchLimits.FullRange(I0154f) - ตอนนี้
ExposedDropdownMenuเป็นฟังก์ชันส่วนขยายในExposedDropdownMenuBoxScopeแทนที่จะเป็นสมาชิก คุณอาจต้องอัปเดตรหัสด้วยการนำเข้าใหม่ (Ie8a65) - นำ
SurfaceProtectionคลาสที่เลิกใช้งานแล้วออก โปรดใช้SpatialExternalSurfaceProtectionแทน (Iab2c6) - เราเลิกใช้งานฟังก์ชัน Orbiter ที่ใช้
OrbiterPoseProviderแล้ว และหันมาใช้ฟังก์ชันที่ใช้SpatialAlignmentแทน (I4d12b) SpatialActivityPanelตอนนี้ต้องใช้SpatialActivityPanelController(สร้างขึ้นโดยใช้rememberSpatialActivityPanelController) เพื่อเปิดตัวและจัดการกิจกรรมที่ฝังไว้ (Id25c6)- นำพารามิเตอร์
upDirectionออกจากrotateToLookAtUserและเพิ่มพารามิเตอร์ข้อจำกัดการหมุน (isYawUpdateEnabledและpitchLimits) (I1370a)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหา
InteractionPolicyต่างๆ ระบบจะขัดข้องหากเหตุการณ์อินพุตเกิดขึ้นในขณะที่ Composable หรือองค์ประกอบย่อย (เช่น Orbiter) เริ่มลำดับการทิ้ง นอกจากนี้ ยังแก้ไขปัญหาที่เด็กจะได้รับเหตุการณ์การวางเมาส์ด้วย (Ifc477) - ลดขนาดแผงใน
RotateToLookAtUserActivityเพื่อป้องกันการตัดในอุปกรณ์ที่มี FOV ขนาดเล็ก (I8d672)
ปัญหาที่ทราบ
- มีปัญหาเกี่ยวกับแผง Compose XR ซึ่งการสร้างแผงจำนวนมากในกิจกรรมเดียวอาจทำให้สิ่งที่กำลังดูอยู่เสียหาย แม้หลังจากที่ทำลายแผงแล้วก็ตาม
เวอร์ชัน 1.0.0-alpha17
12 สิงหาคม 2026
androidx.xr.compose:compose:1.0.0-alpha17 และ androidx.xr.compose:compose-testing:1.0.0-alpha17 เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha17 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- นำคลาสค่า
Meterออก เนื่องจากจะแทนที่ด้วยvirtualPixelDensityในScenecore(I690ee) - ตอนนี้
SpatialGltfModelAPI อยู่ในเวอร์ชันทดลองและต้องเลือกใช้เพื่อใช้งาน (I4557e) - ทำให้
systemresizable nullable (Ib0093) - แสดง
DensityในSubspaceSemanticsInfoสำหรับการทดสอบ (I2e826) - เปลี่ยนชื่อตัวเลือกเริ่มต้น
ResizePolicyเป็นsystemและเพิ่มตัวเลือกDefaultใหม่โดยไม่มีพารามิเตอร์ (Ic8b16) - ทำเครื่องหมายว่า
FollowTargetเป็นเวอร์ชันทดลอง ตอนนี้FollowingSubspaceAPI ทั้งหมดอยู่ในเวอร์ชันทดลอง (Id4ee3) - นำ
GltfAnimationAPI ออก (Ic2894) - เปลี่ยนชื่อเมธอด
MovePolicy.default()ที่มีพารามิเตอร์เป็นMovePolicy.system()เปิดตัวพร็อพเพอร์ตี้val MovePolicy.Defaultเพื่อแสดงลักษณะการเคลื่อนไหวเริ่มต้นมาตรฐาน (Iedcc9) - ขยาย
ExperimentalMoveAnchorPolicyข้อกำหนดในการเลือกใช้เป็นPlaneSemanticและPlaneOrientation(Ief927) - นำ
resetMinsออกจากVolumeConstraints.offset(Ib2f2f) - นำฟังก์ชัน
SceneCoreEntitySizeAdapterที่เลิกใช้งานแล้วออก (Ib6722) - นำการโอเวอร์โหลด
Subspaceที่เลิกใช้งานแล้วออกด้วยallowUnboundedSubspace(I8e97f) - นำการโอเวอร์โหลดตัวแก้ไขความหมายที่เลิกใช้งานแล้วออก (I4ac10)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่บุตรหลานของ
Composableที่มีInteractionPolicyแนบมาจะทริกเกอร์เหตุการณ์อินพุต (Icdba6)
เวอร์ชัน 1.0.0-alpha16
15 กรกฎาคม 2026
androidx.xr.compose:compose:1.0.0-alpha16 และ androidx.xr.compose:compose-testing:1.0.0-alpha16 เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha16 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- นำ
ComponentOverrideAPI ออก (I820c4) GltfAnimationและSpatialGltfModelAnimationAPI ได้รับการทำเครื่องหมายว่าอยู่ในขั้นทดลอง พร็อพเพอร์ตี้บางรายการเปลี่ยนเป็นตัวรับ (I8d689, b/524771027)- แก้ไขลักษณะการทำงานของความหนาแน่นโดยรวมโดยกำหนดให้การแปลงระหว่างเมตรกับพิกเซลคงที่ ตอนนี้คุณใช้ Meter.kt ที่เลิกใช้งานแล้ว
Session.scene.virtualPixelDensityแทนได้แล้ว (I122ff, b/430097855, b/474168798) - อัปเดตตัวแก้ไขที่ปรับขนาดได้เพื่อใช้
ResizePolicyแทนตัวแก้ไข 2 ตัว (I7fb0f, b/496257436, b/519672992) - เพิ่มค่าความคลาดเคลื่อน:
Dp = Dp(0.5f)พารามิเตอร์ในการยืนยันความเท่ากันของมิติข้อมูลและตำแหน่งแบบจุดลอยตัวสาธารณะทั้งหมดในSubspaceAssertions.ktลักษณะการทำงานของความคลาดเคลื่อนเริ่มต้น (0.5.dp) มีการบันทึกไว้อย่างครบถ้วน (I266cb, b/521491915) - เพิ่มการโอเวอร์โหลดที่ย้ายได้ด้วยพารามิเตอร์
movePolicyและเลิกใช้งานtransformingMovableและmovable(Ic88c1, b/481781189) - เพิ่มตัวแปรใหม่แบบไม่โต้ตอบของรายการมาตรฐานและรายการที่แบ่งกลุ่มซึ่งเป็นไปตามข้อกำหนดของ Material Expressive เวอร์ชันที่ไม่ใช่แบบสื่ออารมณ์เลิกใช้งานแล้ว (Ide4de, b/491994186)
- สำหรับ Subspace ตอนนี้เราเลิกใช้งานและซ่อนพารามิเตอร์
allowUnboundedSubspaceแล้ว ตอนนี้คุณควรใช้SubspaceModifier.requiredSizeIn(maxWidth=Dp.Infinity,maxHeight=Dp.Infinity,maxDepth=Dp.Infinity) ในตัวแก้ไข Subspace เพื่อให้ได้ลักษณะการทำงานที่ไม่จำกัด พารามิเตอร์allowUnboundedSubspaceถูกนำออกจากFollowingSubspace(Ia72ae, b/433624021) - แปลง
Session.createเป็นฟังก์ชันระงับ (I5d27f) - เพิ่ม
SubspaceModifier.spatializedAudioOutputซึ่งช่วยให้เล่นเสียงแบบ Spatial ได้ผ่านExoPlayerหรือผ่านSoundEffectPlayer(I46697, b/489421980, b/497867019) - อัปเดต
ComponentActivity.requestHomeSpace()และrequestFullSpace()เพื่อแสดงผลSpaceRequestResultสำหรับการยืนยันสถานะ (If1672) - อัปเดต
AnchorEntityเป็นAnchorSpace(Ifa95e, b/513619219) - วิธีการ
fromResourceแบบไม่จำกัดจากSpatialGltfModelSource(I1f5a1, b/503047416) - สมาชิก
SubspaceSemanticsMatcherเป็นแบบสาธารณะ ได้แก่ พร็อพเพอร์ตี้description, วิธีการสร้างคู่กัน (expectValue,keyIsDefined,keyNotDefined), ฟังก์ชันสมาชิก (matches,matchesAny) และตัวดำเนินการ (and,or,not) (I972a4, b/460427288) - อัปเดต
SubspaceModifier.semantics,SubspaceModifier.testTag,SubspaceSemanticsInfo,SubspaceSemanticsModifierNodeเพื่อใช้ประเภทความหมายเชิงพื้นที่ที่คัดสรรแล้ว (I80dea, b/460427288) - เปลี่ยนชื่อ
positionเป็นalignในSpatialAlignmentและนำวิธีการออฟเซ็ตทิศทางแต่ละรายการออกเพื่อใช้alignAPI แบบรวม (I9bdb2, b/479805937) - นำ API โหมดพื้นที่ทำงานที่เลิกใช้งานแล้วออกจาก
SpatialConfiguration(I1ef5c, b/458712461) - เปิดตัว
SubspaceSemanticsConfigurationนี่คือการกําหนดค่าพร็อพเพอร์ตี้เชิงความหมายสําหรับโหนดเชิงพื้นที่ คลาสนี้จะแสดงเมธอดการค้นหาสำหรับความหมาย 3 มิติอย่างปลอดภัยโดยไม่รั่วไหลความสามารถด้านความหมาย 2 มิติพื้นฐานไปยังผู้ใช้ภายนอก (Id025e, b/460427288) - เปิดตัว
SubspaceSemanticsPropertyReceiver: Wrapper เฉพาะที่จำกัดพร็อพเพอร์ตี้คอนเทนเนอร์เลย์เอาต์ 3 มิติไว้เฉพาะฟิลด์ที่ถูกต้อง (เริ่มแรกคือtestTagและcontentDescription) (I5cf5c, b/460427288)
การแก้ไขข้อบกพร่อง
- อัปเดต
hasContentDescriptionของตัวแก้ไขความหมายให้เป็นค่าเริ่มต้นเป็นการจับคู่สตริงย่อย (I08214) - เพิ่ม
FollowBehavior.ExponentialDecay()ที่จำกัด ซึ่งจะทำให้เกิดพฤติกรรมการติดตามแบบนุ่มนวลตามหลักฟิสิกส์แบบยืดหยุ่น (I7449c, b/485639909, b/500493335)
API ส่วนใหญ่จะได้รับผลกระทบจากการเปลี่ยนแปลงนี้ กล่าวโดยละเอียดคือ LocalSession CompositionLocal และ CompositionLocals ทั้งหมดที่ขึ้นอยู่กับ LocalSession (เช่น LocalSpatialConfiguration, LocalSpatialCapabilities ฯลฯ) จะเปลี่ยนไปใช้ null หรือเวอร์ชันที่ไม่ใช่ XR ก่อนที่จะมีการเริ่มต้น Session
เมื่อ Session พร้อมใช้งานแล้ว ระบบจะทริกเกอร์การจัดองค์ประกอบใหม่ด้วยสถานะที่ถูกต้อง (I0cfa4, b/514712835, b/514712835)
- ชี้แจงเอกสารประกอบสำหรับ
ComponentActivity.requestHomeSpaceและComponentActivity.requestFullSpaceเกี่ยวกับลักษณะการทำงานของการระงับ การยกเลิก และการใช้งานพร้อมกัน อัปเดตการทดสอบเพื่อยืนยันCancellationExceptionการเผยแพร่ (I22f75, b/493289528)
เวอร์ชัน 1.0.0-alpha15
17 มิถุนายน 2026
androidx.xr.compose:compose:1.0.0-alpha15 และ androidx.xr.compose:compose-testing:1.0.0-alpha15 เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha15 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เลิกใช้งาน
ResizePolicyและตัวแก้ไขที่ปรับขนาดได้แบบเก่า แล้วแทนที่ด้วยการโอเวอร์โหลดSubspaceModifier.resizableและSubspaceModifier.transformingResizableใหม่ (I9e4bc) - อัปเดต
SpatialGltfModelAPI: เพิ่มการรองรับการโหลดโมเดลจากทรัพยากรผ่านSpatialGltfModelSourcefromResourceเปลี่ยนชื่อความเร็วเป็นplaybackSpeedในSpatialGltfModelAnimationและเพิ่มเมธอด resume()SpatialGltfModelStatusตอนนี้ Loaded และ Loading เป็นออบเจ็กต์แล้ว (I523de) - ทำเครื่องหมาย
rotateToLookAtUserเป็น API เวอร์ชันทดลอง (I86c16) - ย้ายและเปลี่ยนชื่อตัวแปรที่ป้องกัน
targetCurrentPoseเป็นตัวแปรในเครื่องcurrentTargetPoseMeter(Ia557c) - อัปเดต
SpatialPanelและSpatialExternalSurfacekdocs เพื่อระบุตำแหน่งที่แสดงผลออบเจ็กต์ภายในขนาดเลย์เอาต์ (I72104) SpatialGltfModelตรรกะการโหลดที่แคปซูลภายในSpatialGltfModelStateและชี้แจงลักษณะการทำงานเมื่อเกิดข้อผิดพลาด (Ibe98b)- อธิบาย
depthในเอกสารความรู้ของSubspaceModifer.size(I0f84f)
เวอร์ชัน 1.0.0-alpha14
19 พฤษภาคม 2026
androidx.xr.compose:compose:1.0.0-alpha14 และ androidx.xr.compose:compose-testing:1.0.0-alpha14 เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha14 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- เปิดตัว
transformingMovableสำหรับการเคลื่อนไหว 3 มิติที่ระบบจัดการโดยค่าเริ่มต้น และเปิดตัวการโอเวอร์โหลดใหม่สำหรับmovableเพื่อจัดการลักษณะการเคลื่อนไหวที่กำหนดเอง (I50960) - นำ
SpatialGltfModel.fromData()ออกแล้ว (I4d083) - เพิ่มอินเทอร์เฟซโหนดตัวแก้ไขใหม่
SubspaceMeasuredSizeAwareModifierNodeซึ่งมีonRemeasuredCallback หลังจากผ่านการวัดSubspaceLayoutAwareModifierNodeขยายอินเทอร์เฟซใหม่นี้แล้ว เราได้อัปเดตตัวแก้ไขonSizeChangedให้ใช้onRemeasuredเพื่อให้มั่นใจว่าระบบจะทริกเกอร์การเรียกกลับทันทีหลังจากการวัดผล ไม่ใช่หลังจากการวาง (Iafbae) - อัปเดต
InteractionPolicyเป็นInterface(I0ff30) - อัปเดต Compose
compileSdkเป็น API 37 ซึ่งหมายความว่าเมื่อใช้ Compose จะต้องใช้ AGP เวอร์ชัน 9.2.0 เป็นอย่างน้อย (Id45cd) - อัปเดตเอกสารความรู้
Size(Iefa9a)
เวอร์ชัน 1.0.0-alpha13
6 พฤษภาคม 2026
androidx.xr.compose:compose:1.0.0-alpha13 และ androidx.xr.compose:compose-testing:1.0.0-alpha13 เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha13 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- Orbiter API อยู่ระหว่างการเปลี่ยนแปลงเพิ่มเติม เราขอแนะนำให้ระงับประกาศการเลิกใช้งานสำหรับ Orbiter และคอยติดตามการเปลี่ยนแปลงของ Orbiter ในรุ่นที่จะเปิดตัวในอนาคต
- ผู้ที่ใช้
SceneCoreEntityในการแสดงผล glTF ควรตรวจสอบว่าตนเองส่งsession.scene.activitySpaceไปยังพารามิเตอร์parentของการเรียกGltfModel.createเพื่อให้มั่นใจว่า glTF จะแสดงผล - เพิ่ม
SpatialGltfModelAPI เพื่ออนุญาตให้นักพัฒนาแอปเพิ่ม Gltf ลงในแอป Compose For XR นอกจากนี้ นักพัฒนายังสามารถค้นหาภาพเคลื่อนไหวและโหนดภายในโมเดล Gltf ได้ด้วย (I8b542, b/495422586) - เปลี่ยน
SceneCoreEntitySizeAdapterจากคลาสเป็นอินเทอร์เฟซ (I5a784, b/475292310) - เปลี่ยนชื่อ
SurfaceProtectionเป็นSpatialExternalSurfaceProtectionแล้ว อัปเดตเอกสารความรู้SpatialExternalSurface(Ifad0a, b/485231082) - เลิกใช้งาน
currentWindowAdaptiveInfoและเปิดตัวเวอร์ชัน 2 (I40ecf, b/424442112) - ตอนนี้ตัวแก้ไข
resizableพร้อมใช้งานแล้วและใช้ได้กับกลุ่ม (เช่นSpatialRow) (I2bcf6, b/348483527, b/489753178, b/479530787) - ตอนนี้แป้นกดร่วม
movableพร้อมใช้งานแล้ว ขณะนี้ตัวแก้ไขนี้ทำงานได้ดีกับSpatialPanelsและSpatialExternalSurfaceแต่เราตั้งใจที่จะให้ตัวแก้ไขเหล่านี้รองรับSubspaceComposablesทั้งหมดได้ดี (I9a3cd, b/479530787, b/478935063, b/478935063) SpatialEnterTransitionและSpatialExitTransitionทำเครื่องหมายเป็น@Immutable(If1710, b/487757837)- เราได้ทำเครื่องหมาย API
SpatialGltfModelว่าเป็น API ที่ถูกจำกัดสำหรับการเปิดตัวนี้ในระหว่างรอการทดสอบเพิ่มเติม (Ibf003, b/466090694) - เปลี่ยนชื่อ
DeviceTrackingMode.LAST_KNOWNเป็นSPATIAL_LAST_KNOWN(พร้อมการสำรองข้อมูลที่เลิกใช้งานแล้ว) เพิ่มINERTIAL_LAST_KNOWNสำหรับการติดตาม 3DoF และเพิ่มTRACKING_DEGRADEDลงในTrackingState(Ie661c, b/445466590) - การนำ
SpatialLayoutSpacerที่เลิกใช้งานแล้วออก (I7b36c) - นำ API การเพิ่มระยะขอบที่เลิกใช้งานแล้ว (If1886) ออก
- เพิ่ม
floatRangeลงในค่าอคติ นำค่าเริ่มต้นสำหรับLayoutDirectionออกแล้ว (I9d74e)
การแก้ไขข้อบกพร่อง
- เพิ่มตัวอย่างโค้ดและเอกสารประกอบ KDoc สำหรับ
SpatialColumn,SpatialRowและSpatialCurvedRow(Iaf54f, b/495777633)
เวอร์ชัน 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)
ปัญหาที่ทราบ
- ปัญหาเกี่ยวกับ
SurfaceEntityใน SceneCore อาจทำให้แอปขัดข้องเมื่อสร้างอินสแตนซ์ของSpatialExternalSurfaceปัญหานี้ได้รับการแก้ไขแล้วในandroidx.xr.scenecore:scenecore-*:1.0.0-alpha13,androidx.xr.compose:compose:1.0.0-alpha12และรุ่นต่อๆ ไป แอปที่ได้รับผลกระทบควรอัปเดตเป็นเวอร์ชันล่าสุด
การเปลี่ยนแปลง API
- การเปลี่ยนแปลงระยะขอบของตัวแก้ไขพื้นที่ย่อยเพื่อการรับรู้ทิศทางของเลย์เอาต์ (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) - นำ Billboard 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ที่ให้การเรียกกลับที่เรียบง่ายและมุ่งเน้นสำหรับนักพัฒนาแอปเพื่อตอบสนองเมื่อขนาดของ@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
- ปรับปรุงเอกสารประกอบของ KDocs สำหรับ
SpatialMainPanel(I27b70, b/444467891) - เปิดตัว
SpatialArrangementสำหรับจัดเรียงองค์ประกอบย่อยตามแกนหลักในเลย์เอาต์ 3 มิติ เช่นSpatialRowและSpatialColumnAPI ใหม่นี้มีตัวเลือกการจัดเรียงที่คุ้นเคยจาก 2D Compose ซึ่งรวมถึงStart,End,Center,SpaceBetween,SpaceAroundและSpaceEvenlyโดยรองรับทั้งทิศทางการจัดวางจากซ้ายไปขวา (LTR) และจากขวาไปซ้าย (RTL) อย่างเต็มรูปแบบ (I7db38, b/436289959) - เพิ่มอินเทอร์เฟซพื้นฐานสำหรับ
SubspaceModifier.Nodeเพื่อปรับปรุงความปลอดภัยในการกำหนดประเภทและความสามารถในการใช้งานของอินเทอร์เฟซส่วนขยาย เช่นCompositionLocalConsumerSubspaceModifierNodeLayoutCoordinatesAwareModifierNodeSubspaceLayoutModifierNodeCoreEntityNode(ภายใน) (Iede00, b/440599394, b/440599394)
- ยกเลิกการจำกัด
SpatialExternalSurface(I33315, b/439646773) - แนะนำ
SubspaceModifierให้กับ Composable ของ Subspace และแทนที่พารามิเตอร์ข้อจำกัดด้วยSubspaceModifierที่มีSubspaceModifiersที่เกี่ยวข้องกับขนาด หากallowUnboundedSubspaceเป็นจริง Subspaces จะยังมีข้อจำกัดที่ไม่จำกัดได้ (Ib06e6, b/433331675) - เลิกใช้งาน
SubspaceModifiersที่ย้ายและปรับขนาดได้เนื่องจากDragPolicy()และResizePolicy()เป็นส่วนหนึ่งของ APISpatialPanelและSpatialExternalSurfaceแล้ว (I397bf, b/437924639) - เพิ่มการรองรับ
LayoutDirectionในเลย์เอาต์เชิงพื้นที่ ตอนนี้ Composable ที่ใช้SpatialAlignmentจะจัดตำแหน่งองค์ประกอบอย่างถูกต้องทั้งในบริบท LTR และ RTL (I964bb, b/436300273) - เพิ่มพารามิเตอร์ที่ปรับขนาดและย้ายได้ลงใน API ของ
Panelเพื่อให้มั่นใจว่าลักษณะการทำงานเหล่านี้จะใช้ได้กับคอนเทนเนอร์ที่รองรับเท่านั้น (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)
- เพิ่มผู้ให้บริการตำแหน่งสำหรับเคล็ดลับเครื่องมือ เพื่อให้นักพัฒนาแอปควบคุมได้ว่าเคล็ดลับเครื่องมือจะอยู่เหนือ ใต้ ซ้าย หรือขวาของ Anchor เพิ่ม 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 ใหม่ที่ใช้รูปแบบการใช้งานAndroidViewของ Compose และเลิกใช้งาน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"ในไฟล์ Manifest ของ Android - ตอนนี้การจัดการย้อนกลับจะใช้ได้กับกล่องโต้ตอบเชิงพื้นที่แล้ว หากต้องการให้การจัดการย้อนกลับทำงาน คุณต้องระบุ
android:enableOnBackInvokedCallback="true"ในไฟล์ Manifest ของ Android - ตอนนี้
SpatialPanelที่อิงตาม Compose และ View สามารถปรับขนาดตามเนื้อหาของตัวเองได้แล้ว - ตอนนี้ นักพัฒนาแอปสามารถตั้งค่า
SpatialElevationLevelที่กำหนดเองได้แล้ว และไม่จำกัดเฉพาะระดับที่กำหนดไว้ล่วงหน้า - ตอนนี้คุณปรับแต่งระดับความสูงของ Orbiter ได้แล้วผ่านพารามิเตอร์
elevation - ตอนนี้คุณสามารถกำหนดขอบเขตของพื้นที่ย่อยตามขอบเขตการมองเห็นของ
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หากก่อนหน้านี้ใช้พารามิเตอร์SpatialRowของcurveRadiusให้ใช้SpatialCurvedRowแทน ซึ่งมีลักษณะการทำงานเหมือนกัน MainPanelและActivityPanelจะไม่มีแถบชื่ออีกต่อไปเมื่อเรียกใช้ในอิมเมจระบบที่เพิ่งอัปเดตเช่นกัน- ตอนนี้ตัวปรับอัลฟ่าและตัวปรับสเกลสามารถซ้อนกันได้ และจะคูณค่าของตัวปรับเหล่านั้นเพื่อให้ได้ค่าอัลฟ่าหรือค่าสเกลสุดท้ายที่ใช้
onPoseChangeการเรียกกลับจากตัวปรับที่เคลื่อนย้ายได้ได้รับการเพิ่มประสิทธิภาพเพื่อให้การเคลื่อนไหวของท่าทางราบรื่นยิ่งขึ้น- ตอนนี้ตัวปรับแต่งที่ย้ายและปรับขนาดได้จะเรียกใช้ Callback ในเทรดหลักเพื่อให้มั่นใจว่าการเปลี่ยนแปลงสถานะจะทริกเกอร์การจัดองค์ประกอบใหม่
- เพิ่มการสังเกตสถานะในเลย์เอาต์และเฟสการวัดเพื่อให้มั่นใจว่าการเปลี่ยนแปลงสถานะใน
SubspaceLayoutจะทริกเกอร์การจัดเลย์เอาต์ใหม่ - การอัปเดตเชนตัวแก้ไขที่เพิ่มประสิทธิภาพเพื่อนำตัวแก้ไขที่มีอยู่กลับมาใช้ซ้ำได้ดียิ่งขึ้น
การแก้ไขข้อบกพร่อง
- หยุดการซ้อมเมื่อมีการแสดง
SpatialDialog(Ic4594) - ตอนนี้ระบบจะไม่สนใจคำขอเลย์เอาต์ใหม่ที่ส่งขณะที่โหนดตัวแก้ไขไม่ได้เชื่อมต่อแล้ว
- นำเฟสการจัดเลย์เอาต์ใหม่ที่ทริกเกอร์โดยตัวแก้ไขที่ย้ายและปรับขนาดได้ออก
- แก้ไขข้อขัดข้องใน
MainPanel()ที่ประกอบได้ซึ่งเกิดขึ้นเมื่อตั้งค่ามิติข้อมูลใดมิติข้อมูลหนึ่งเป็น 0 ไม่ว่าจะโดยตรงหรือในระหว่างการคำนวณเลย์เอาต์ เช่น การคำนวณSpatialRow/SpatialColumnตอนนี้ระบบจะซ่อนแผงแทน โปรดทราบว่าการแก้ไขนี้มุ่งเน้นที่ข้อขัดข้องในระหว่างขั้นตอนการจัดวางโดยเฉพาะ ส่วนการปรับขนาดแผงเป็น 0 ผ่านการโต้ตอบของผู้ใช้จะได้รับการจัดการแยกต่างหาก แผงที่ซ่อนไม่มีความสามารถในการใช้งาน UI - แก้ไขปัญหาเกี่ยวกับ
maintainAspectRatioจากตัวแก้ไขที่ปรับขนาดได้ ตอนนี้สัดส่วนภาพควรจะคงเดิม - แก้ไขปัญหาเกี่ยวกับ Subspace ที่ซ้อนกันซึ่งจะวางตำแหน่งไม่ถูกต้องสำหรับเฟรมเดียว
- แก้ปัญหาที่บางครั้งระบบไม่ใช้มุมโค้งเมื่อควรใช้
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ได้แล้ว และจะแนบ Orbiter กับองค์ประกอบหลักที่ใช้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 เช่น แผงเชิงพื้นที่และ Orbiter ซึ่งช่วยให้คุณวาง 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 เชิงพื้นที่ โดยออกแบบมาให้ติดกับแผงเชิงพื้นที่ที่เกี่ยวข้อง และมีรายการการนำทางและการดำเนินการตามบริบทที่เกี่ยวข้องกับแผงเชิงพื้นที่นั้น เช่น หากคุณสร้างแผงเชิงพื้นที่เพื่อแสดงเนื้อหาวิดีโอ คุณจะเพิ่มตัวควบคุมการเล่นวิดีโอภายใน Orbiter ได้
ปริมาตร: วางเอนทิตี SceneCore เช่น โมเดล 3 มิติ เทียบกับ UI
เลย์เอาต์เชิงพื้นที่ คุณสร้างแผงเชิงพื้นที่หลายแผงและวางไว้ภายในเลย์เอาต์เชิงพื้นที่ได้โดยใช้
SpatialRow,SpatialColumn,SpatialBoxและSpatialLayoutSpacerใช้SubspaceModifiers เพื่อปรับแต่งเลย์เอาต์คอมโพเนนต์ UI เชิงพื้นที่: องค์ประกอบเหล่านี้สามารถนำกลับมาใช้ซ้ำใน UI 2 มิติได้ และแอตทริบิวต์เชิงพื้นที่จะมองเห็นได้เมื่อเปิดใช้ความสามารถเชิงพื้นที่เท่านั้น
SpatialDialog: แผงจะเลื่อนกลับไปเล็กน้อยในแนวลึก z เพื่อแสดงกล่องโต้ตอบที่ยกระดับ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 ในแผงที่ย้ายไปไกลมากจะทำให้เนื้อหาเคลื่อนที่ไปในทิศทางที่ไม่ถูกต้อง