Jetpack Compose สำหรับ XR

สร้างเลย์เอาต์ UI เชิงพื้นที่แบบประกาศที่ใช้ประโยชน์จากความสามารถเชิงพื้นที่ของ Android 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)
  • ตอนนี้ SpatialGltfModel API อยู่ในเวอร์ชันทดลองและต้องเลือกใช้เพื่อใช้งาน (I4557e)
  • ทำให้ system resizable nullable (Ib0093)
  • แสดงDensityในSubspaceSemanticsInfoสำหรับการทดสอบ (I2e826)
  • เปลี่ยนชื่อตัวเลือกเริ่มต้น ResizePolicy เป็น system และเพิ่มตัวเลือก Default ใหม่โดยไม่มีพารามิเตอร์ (Ic8b16)
  • ทำเครื่องหมายว่าFollowTargetเป็นเวอร์ชันทดลอง ตอนนี้ FollowingSubspace API ทั้งหมดอยู่ในเวอร์ชันทดลอง (Id4ee3)
  • นำ GltfAnimation API ออก (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

  • นำ ComponentOverride API ออก (I820c4)
  • GltfAnimation และ SpatialGltfModelAnimation API ได้รับการทำเครื่องหมายว่าอยู่ในขั้นทดลอง พร็อพเพอร์ตี้บางรายการเปลี่ยนเป็นตัวรับ (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 และนำวิธีการออฟเซ็ตทิศทางแต่ละรายการออกเพื่อใช้ align API แบบรวม (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)
  • อัปเดต SpatialGltfModel API: เพิ่มการรองรับการโหลดโมเดลจากทรัพยากรผ่าน SpatialGltfModelSourcefromResource เปลี่ยนชื่อความเร็วเป็น playbackSpeed ใน SpatialGltfModelAnimation และเพิ่มเมธอด resume() SpatialGltfModelStatus ตอนนี้ Loaded และ Loading เป็นออบเจ็กต์แล้ว (I523de)
  • ทำเครื่องหมาย rotateToLookAtUser เป็น API เวอร์ชันทดลอง (I86c16)
  • ย้ายและเปลี่ยนชื่อตัวแปรที่ป้องกัน targetCurrentPose เป็นตัวแปรในเครื่อง currentTargetPoseMeter (Ia557c)
  • อัปเดต SpatialPanel และ SpatialExternalSurface kdocs เพื่อระบุตำแหน่งที่แสดงผลออบเจ็กต์ภายในขนาดเลย์เอาต์ (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 ซึ่งมีonRemeasured Callback หลังจากผ่านการวัด 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 จะแสดงผล
  • เพิ่ม SpatialGltfModel API เพื่ออนุญาตให้นักพัฒนาแอปเพิ่ม 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

  • เพิ่ม SpatialGltfModel API และ SpatialGltfModelAnimation API เพื่อแสดงผล glTF และควบคุมภาพเคลื่อนไหว เปลี่ยน SpatialGltfModelState เป็น AutoCloseable ตอนนี้คุณจะต้องปิดเพื่อเพิ่มพื้นที่ว่างสำหรับทรัพยากร (I11fde, b/466065486, b/481379924) อย่างไรก็ตาม เราได้ทำเครื่องหมาย SpatialGltfModel API ว่าถูกจำกัดสำหรับการเปิดตัวนี้ในระหว่างรอการทดสอบเพิ่มเติม (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 ระดับแอปพลิเคชันที่ท่าทางและสเกลที่แนะนำเท่านั้น
    • เราขอแนะนำ PlanarEmbeddedSubspace API เพื่อให้มีพื้นที่ย่อยแบบฝังในบริบท 2 มิติ (Id3343)
  • เพิ่มฟีเจอร์shouldAutoInvalidateใน API ของ SubspaceModifier.Node (I93902)
  • เพิ่มrequired(Size|Width|Depth|Height)ใน API ที่อนุญาตให้นักพัฒนาแอปจำกัด@SubspaceComposableขนาดขององค์ประกอบให้อยู่ในช่วงที่เฉพาะเจาะจง โดยไม่คำนึงถึงข้อจำกัดด้านการวัดที่เข้ามาขององค์ประกอบระดับบนสุด (Ifaa78)
  • เพิ่ม SubspaceModifier.onSizeChanged ที่ให้การเรียกกลับที่เรียบง่ายและมุ่งเน้นสำหรับนักพัฒนาแอปเพื่อตอบสนองเมื่อขนาดของ @SubspaceComposable เปลี่ยนแปลง (I994f9)
  • นำ Volume API ออกแล้ว ควรใช้ SceneCoreEntity API แทน Volume API (I4162b)
  • แยก SubspaceLayoutModifierNode.requestRelayout เป็น invalidateMeasurement/invalidatePlacement (I14805)
  • เพิ่ม SpatialGltfModel API ที่ช่วยให้นักพัฒนาแอปแสดงผล glTF ใน Compose ได้ (Icc91f)
  • เปิดตัว SpatialGltfModel composable 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 และ SpatialColumn API ใหม่นี้มีตัวเลือกการจัดเรียงที่คุ้นเคยจาก 2D Compose ซึ่งรวมถึง Start, End, Center, SpaceBetween, SpaceAround และ SpaceEvenly โดยรองรับทั้งทิศทางการจัดวางจากซ้ายไปขวา (LTR) และจากขวาไปซ้าย (RTL) อย่างเต็มรูปแบบ (I7db38, b/436289959)
  • เพิ่มอินเทอร์เฟซพื้นฐานสำหรับ SubspaceModifier.Node เพื่อปรับปรุงความปลอดภัยในการกำหนดประเภทและความสามารถในการใช้งานของอินเทอร์เฟซส่วนขยาย เช่น
    • CompositionLocalConsumerSubspaceModifierNode
    • LayoutCoordinatesAwareModifierNode
    • SubspaceLayoutModifierNode
    • CoreEntityNode (ภายใน) (Iede00, b/440599394, b/440599394)
  • ยกเลิกการจำกัด SpatialExternalSurface (I33315, b/439646773)
  • แนะนำ SubspaceModifier ให้กับ Composable ของ Subspace และแทนที่พารามิเตอร์ข้อจำกัดด้วย SubspaceModifier ที่มี SubspaceModifiers ที่เกี่ยวข้องกับขนาด หาก allowUnboundedSubspace เป็นจริง Subspaces จะยังมีข้อจำกัดที่ไม่จำกัดได้ (Ib06e6, b/433331675)
  • เลิกใช้งาน SubspaceModifiers ที่ย้ายและปรับขนาดได้เนื่องจาก DragPolicy() และ ResizePolicy() เป็นส่วนหนึ่งของ API SpatialPanel และ SpatialExternalSurface แล้ว (I397bf, b/437924639)
  • เพิ่มการรองรับ LayoutDirection ในเลย์เอาต์เชิงพื้นที่ ตอนนี้ Composable ที่ใช้ SpatialAlignment จะจัดตำแหน่งองค์ประกอบอย่างถูกต้องทั้งในบริบท LTR และ RTL (I964bb, b/436300273)
  • เพิ่มพารามิเตอร์ที่ปรับขนาดและย้ายได้ลงใน API ของ Panel เพื่อให้มั่นใจว่าลักษณะการทำงานเหล่านี้จะใช้ได้กับคอนเทนเนอร์ที่รองรับเท่านั้น (Id491c)
  • เพิ่ม sizeIn, widthIn, heightIn, depthIn SubspaceModifiers ที่ช่วยให้คุณกำหนดข้อจำกัดขั้นต่ำและสูงสุดที่แน่นอนสำหรับความกว้าง ความสูง และความลึกได้ (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)
  • SpatialExternalSurface Composable ใหม่ 2 รายการที่แสดงทรงกลม 180 และ 360 องศา (I40ef2, b/391705799)
  • เพิ่ม SubspaceModifier.aspectRatio แล้ว (Ide5ab, b/399729509, b/414762147)
  • เพิ่ม SceneCoreEntity API เพื่อปรับปรุงความสามารถในการทำงานร่วมกันระหว่าง SceneCore กับ Compose สำหรับ XR (I50bb3, b/423020989)
  • จัดเตรียม GravityAlignedsubspace API เพื่อรองรับฟีเจอร์ 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)
  • นำ setSubspaceContent API ออกเพื่อใช้ setContent ของ Compose กับ Composable Subspace (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 ที่กำหนดเองเข้าถึงค่าภายในขององค์ประกอบ
  • เพิ่ม SpatialPanel API ใหม่ที่ใช้รูปแบบการใช้งาน 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 จะไม่ใช้เอฟเฟกต์อีกต่อไปหากมีการแยกหรือกำลังแยก
  • เราได้แบ่ง SpatialRow API ที่มีอยู่เป็น 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 มีการคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • ตอนนี้แผงกิจกรรมสามารถปิดทึบเนื้อหาเมื่อเปิดใช้งานกล่องโต้ตอบเชิงพื้นที่ได้แล้ว
  • ตอนนี้คุณใช้ Orbiter API ในบริบท SubspaceComposable ได้แล้ว และจะแนบ Orbiter กับองค์ประกอบหลักที่ใช้ SubspaceLayout ที่ใกล้ที่สุด
  • เปิดตัว LayoutCoordinatesAwareModifierNode เพื่ออนุญาตตัวแก้ไขตามตำแหน่งที่กำหนดเอง
  • เพิ่มวิธีการวงจรการแนบ/การแยกใน SubspaceModifier.Node
  • เพิ่ม scaleWithDistance ลงในตัวปรับแต่งที่เคลื่อนย้ายได้แล้ว เมื่อเปิดใช้ scaleWithDistance องค์ประกอบของพื้นที่ย่อยที่ย้ายจะขยายหรือย่อ นอกจากนี้ ยังจะคงสเกลที่ชัดเจนซึ่งมีอยู่ก่อนการเคลื่อนไหวด้วย

การเปลี่ยนแปลง API

  • นำ SessionCallbackProvider ออกแล้วเพื่อแทนที่ด้วย SpatialCapabilities

การเปลี่ยนแปลงอื่นๆ

  • ลด minSDK เหลือ 24 API ของ Jetpack XR ทั้งหมดจะยังคงต้องใช้ API 34 ในรันไทม์
  • Orbiter EdgeOffset.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 ในแผงที่ย้ายไปไกลมากจะทำให้เนื้อหาเคลื่อนที่ไปในทิศทางที่ไม่ถูกต้อง