Jetpack Compose cho XR

Xây dựng bố cục giao diện người dùng không gian một cách khai báo để tận dụng các chức năng không gian của Android XR.
Bản cập nhật mới nhất Bản phát hành ổn định Bản phát hành dùng thử Bản phát hành beta Bản phát hành alpha
Ngày 23 tháng 9 năm 2026 - - 1.0.0-beta01 -

Khai báo phần phụ thuộc

Để thêm một phần phụ thuộc vào XR Compose, bạn phải thêm kho lưu trữ Google Maven vào dự án. Đọc nội dung Kho lưu trữ Maven của Google để biết thêm thông tin.

Thêm các phần phụ thuộc cho cấu phần phần mềm bạn cần trong tệp build.gradle cho ứng dụng hoặc mô-đun:

Groovy

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")
}

Để biết thêm thông tin về các phần phụ thuộc, hãy xem bài viết Thêm phần phụ thuộc vào bản dựng.

Ý kiến phản hồi

Ý kiến phản hồi của bạn có thể giúp chúng tôi cải thiện Jetpack. Hãy cho chúng tôi biết nếu bạn phát hiện lỗi mới hoặc có ý tưởng cải thiện thư viện này. Vui lòng xem các lỗi hiện có trong thư viện này trước khi báo một lỗi mới. Bạn có thể thêm lượt bình chọn cho lỗi hiện có bằng cách nhấp vào nút dấu sao.

Báo lỗi mới

Xem tài liệu về Trình theo dõi sự cố để biết thêm thông tin.

Phiên bản 1.0

Phiên bản 1.0.0-beta01

Ngày 23 tháng 9 năm 2026

Phát hành androidx.xr.compose:compose:1.0.0-beta01 và androidx.xr.compose:compose-testing:1.0.0-beta01. Phiên bản 1.0.0-beta01 bao gồm các thay đổi sau.

Thay đổi về API

  • Đã xoá DragPolicy không dùng nữa. Thay vào đó, hãy sử dụng SubspaceModifier.movable(). (I108d4)
  • Xoá ResizePolicy không dùng nữa và các cách sử dụng của trong SpatialPanel và SpatialExternalSurface. Xoá hàm SubspaceModifier.resizable đã ngừng sử dụng. Thay vào đó, hãy sử dụng SubspaceModifier.resizable mới với ResizePolicy mới. (I59e6b)
  • Thêm tham số isPitchUpdateEnabled để cho phép bật hoặc tắt tính năng theo dõi cao độ một cách độc lập. (Ie9e86)
  • Xoá khả năng rỗng của pitchLimits và đổi tên PitchLimits.UNCONSTRAINED thành PitchLimits.FullRange. (I0154f)
  • ExposedDropdownMenu hiện là một hàm mở rộng trên ExposedDropdownMenuBoxScope thay vì là một thành phần. Bạn có thể cần cập nhật mã bằng một lệnh nhập mới. (Ie8a65)
  • Xoá lớp SurfaceProtection không dùng nữa. Thay vào đó, hãy sử dụng SpatialExternalSurfaceProtection. (Iab2c6)
  • Hàm Orbiter lấy OrbiterPoseProvider đã ngừng hoạt động và thay bằng hàm sử dụng SpatialAlignment. (I4d12b)
  • SpatialActivityPanel hiện yêu cầu SpatialActivityPanelController (được tạo thực thể bằng rememberSpatialActivityPanelController) để chạy và quản lý các hoạt động được nhúng. (Id25c6)
  • Xoá tham số upDirection khỏi rotateToLookAtUser và thêm các tham số ràng buộc xoay (isYawUpdateEnabled và pitchLimits). (I1370a)

Sửa lỗi

  • Khắc phục nhiều vấn đề về InteractionPolicy. Đã xảy ra sự cố nếu một sự kiện đầu vào xảy ra ngay khi Thành phần kết hợp hoặc thành phần con (ví dụ: Orbiter) bắt đầu một chuỗi xử lý. Ngoài ra, bản sửa lỗi này còn khắc phục vấn đề trong đó trẻ em sẽ nhận được các sự kiện di chuột. (Ifc477)
  • Giảm kích thước bảng điều khiển trong RotateToLookAtUserActivity để tránh bị cắt trên các thiết bị có trường nhìn (FOV) nhỏ hơn. (I8d672)

Lỗi đã biết

  • Có một vấn đề với các bảng Compose XR, trong đó việc tạo nhiều bảng trong một Hoạt động duy nhất có thể gây ra một số lỗi về nội dung đang được xem ngay cả sau khi các bảng bị huỷ.

Phiên bản 1.0.0-alpha17

Ngày 12 tháng 8 năm 2026

Phát hành androidx.xr.compose:compose:1.0.0-alpha17 và androidx.xr.compose:compose-testing:1.0.0-alpha17. Phiên bản 1.0.0-alpha17 bao gồm các thay đổi sau.

Thay đổi về API

  • Xoá lớp giá trị Meter, lớp này được thay thế bằng virtualPixelDensity trong Scenecore. (I690ee)
  • API SpatialGltfModel hiện đang trong giai đoạn thử nghiệm và bạn phải chọn sử dụng. (I4557e)
  • Đặt system ở chế độ có thể thay đổi kích thước và có thể rỗng (Ib0093)
  • Đã hiển thị Density trong SubspaceSemanticsInfo để kiểm thử. (I2e826)
  • Đổi tên lựa chọn mặc định ResizePolicy thành system và thêm lựa chọn Default mới không có tham số (Ic8b16)
  • Đánh dấu FollowTarget là thử nghiệm. Toàn bộ API FollowingSubspace hiện đang trong giai đoạn thử nghiệm. (Id4ee3)
  • Xoá các API GltfAnimation (Ic2894)
  • Đổi tên phương thức có thông số MovePolicy.default() thành MovePolicy.system(). Ra mắt thuộc tính val MovePolicy.Default để biểu thị hành vi chuyển động mặc định tiêu chuẩn. (Iedcc9)
  • Mở rộng các yêu cầu chọn sử dụng ExperimentalMoveAnchorPolicy sang PlaneSemantic và PlaneOrientation (Ief927)
  • Xoá resetMins khỏi VolumeConstraints.offset (Ib2f2f)
  • Xoá hàm SceneCoreEntitySizeAdapter không dùng nữa. (Ib6722)
  • Xoá phương thức nạp chồng Subspace không dùng nữa bằng allowUnboundedSubspace. (I8e97f)
  • Xoá phương thức nạp chồng đối tượng sửa đổi ngữ nghĩa không dùng nữa. (I4ac10)

Sửa lỗi

  • Khắc phục vấn đề trong đó các thành phần con của Composable có InteractionPolicy được đính kèm sẽ kích hoạt các sự kiện đầu vào (Icdba6)

Phiên bản 1.0.0-alpha16

Ngày 15 tháng 7 năm 2026

Phát hành androidx.xr.compose:compose:1.0.0-alpha16 và androidx.xr.compose:compose-testing:1.0.0-alpha16. Phiên bản 1.0.0-alpha16 bao gồm các thay đổi sau.

Thay đổi về API

  • Xoá các API ComponentOverride (I820c4)
  • Các API GltfAnimation và SpatialGltfModelAnimation đã được đánh dấu là thử nghiệm. Một số thuộc tính đã được chuyển thành phương thức getter. (I8d689, b/524771027)
  • Đã khắc phục hành vi mật độ tổng thể bằng cách thiết lập hằng số cho quá trình chuyển đổi giữa mét và pixel. Meter.kt không dùng nữa, giờ đây bạn có thể sử dụng Session.scene.virtualPixelDensity để thay thế. (I122ff, b/430097855, b/474168798)
  • Cập nhật đối tượng sửa đổi có thể đổi kích thước để sử dụng một ResizePolicy thay vì hai đối tượng sửa đổi (I7fb0f, b/496257436, b/519672992)
  • Thêm một dung sai: tham số Dp = Dp(0.5f) vào tất cả các khẳng định công khai về kích thước và vị trí có dấu phẩy động trong SubspaceAssertions.kt. Hành vi dung sai mặc định (0.5.dp) được ghi lại đầy đủ. (I266cb, b/521491915)
  • Thêm phương thức nạp chồng có thể di chuyển bằng tham số movePolicy và không dùng transformingMovable và movable nữa (Ic88c1, b/481781189)
  • Đã thêm các biến thể không tương tác mới của mục danh sách tiêu chuẩn và mục danh sách phân đoạn tuân theo quy cách của Material Expressive. Phiên bản không biểu cảm đã ngừng hoạt động. (Ide4de, b/491994186)
  • Đối với Không gian phụ, tham số allowUnboundedSubspace hiện không dùng nữa và bị ẩn. Giờ đây, bạn có thể đạt được hành vi không giới hạn bằng cách sử dụng SubspaceModifier.requiredSizeIn(maxWidth = Dp.Infinity, maxHeight = Dp.Infinity, maxDepth = Dp.Infinity) trên đối tượng sửa đổi Không gian con. Tham số allowUnboundedSubspace đã bị xoá khỏi FollowingSubspace. (Ia72ae, b/433624021)
  • Đã chuyển đổi Session.create thành một hàm tạm ngưng. (I5d27f)
  • Thêm SubspaceModifier.spatializedAudioOutput cho phép phát âm thanh không gian hoá thông qua ExoPlayer hoặc thông qua SoundEffectPlayer (I46697, b/489421980, b/497867019)
  • Đã cập nhật ComponentActivity.requestHomeSpace() và requestFullSpace() để trả về SpaceRequestResult cho quy trình xác minh trạng thái. (If1672)
  • Đã cập nhật AnchorEntity thành AnchorSpace (Ifa95e, b/513619219)
  • Phương thức fromResource không bị hạn chế từ SpatialGltfModelSource (I1f5a1, b/503047416)
  • Các thành phần SubspaceSemanticsMatcher là công khai: thuộc tính description, các phương thức nhà máy đồng hành (expectValue, keyIsDefined, keyNotDefined), các hàm thành phần (matches, matchesAny) và các toán tử (and, or, not). (I972a4, b/460427288)
  • Đã cập nhật SubspaceModifier.semantics, SubspaceModifier.testTag, SubspaceSemanticsInfo, SubspaceSemanticsModifierNode để sử dụng các loại ngữ nghĩa không gian được tuyển chọn. (I80dea, b/460427288)
  • Đã đổi tên position thành align trong SpatialAlignment và xoá các phương thức bù hướng riêng lẻ để chuyển sang API align hợp nhất. (I9bdb2, b/479805937)
  • Xoá các API chế độ không gian không dùng nữa khỏi SpatialConfiguration. (I1ef5c, b/458712461)
  • Ra mắt SubspaceSemanticsConfiguration. Đây là cấu hình của các thuộc tính ngữ nghĩa cho một nút Không gian. Lớp này hiển thị một cách an toàn các phương thức truy vấn cho ngữ nghĩa 3D mà không làm lộ các chức năng ngữ nghĩa 2D cơ bản cho người dùng bên ngoài. (Id025e, b/460427288)
  • Giới thiệu SubspaceSemanticsPropertyReceiver: một trình bao bọc chuyên dụng giới hạn các thuộc tính vùng chứa bố cục 3D thành các trường hợp lệ (ban đầu là testTag và contentDescription). (I5cf5c, b/460427288)

Sửa lỗi

  • Đã cập nhật hasContentDescription của đối tượng sửa đổi Ngữ nghĩa để mặc định là so khớp chuỗi con. (I08214)
  • Thêm FollowBehavior.ExponentialDecay() bị hạn chế, cung cấp hành vi theo dõi mềm được hướng dẫn bởi vật lý đàn hồi. (I7449c, b/485639909, b/500493335)

Hầu hết các API sẽ bị ảnh hưởng bởi thay đổi này. Cụ thể, LocalSession CompositionLocal và tất cả CompositionLocals phụ thuộc vào LocalSession (ví dụ: LocalSpatialConfiguration, LocalSpatialCapabilities, v.v.) hiện sẽ phân giải thành null hoặc các phiên bản không phải XR của trước khi Session được khởi chạy.

Sau khi Session có sẵn, quá trình tái cấu trúc sẽ được kích hoạt với trạng thái chính xác. (I0cfa4, b/514712835, b/514712835)

  • Làm rõ tài liệu cho ComponentActivity.requestHomeSpace và ComponentActivity.requestFullSpace liên quan đến hành vi tạm ngưng, huỷ và tính đồng thời. Cập nhật các kiểm thử để xác minh việc truyền CancellationException. (I22f75, b/493289528)

Phiên bản 1.0.0-alpha15

Ngày 17 tháng 6 năm 2026

Phát hành androidx.xr.compose:compose:1.0.0-alpha15 và androidx.xr.compose:compose-testing:1.0.0-alpha15. Phiên bản 1.0.0-alpha15 bao gồm các thay đổi sau.

Thay đổi về API

  • Ngừng sử dụng ResizePolicy và công cụ sửa đổi có thể đổi kích thước cũ, thay thế bằng một hàm nạp chồng SubspaceModifier.resizable mới và SubspaceModifier.transformingResizable. (I9e4bc)
  • Cập nhật các API SpatialGltfModel: Thêm tính năng hỗ trợ tải các mô hình từ tài nguyên thông qua SpatialGltfModelSource.fromResource. Đổi tên tốc độ thành playbackSpeed trong SpatialGltfModelAnimation và thêm phương thức resume(). SpatialGltfModelStatus.Loaded và Loading hiện là các đối tượng. (I523de)
  • Đánh dấu rotateToLookAtUser là một API thử nghiệm. (I86c16)
  • Đã di chuyển và đổi tên biến được bảo vệ targetCurrentPose thành biến cục bộ currentTargetPoseMeter. (Ia557c)
  • Cập nhật SpatialPanel và SpatialExternalSurface kdocs để cho biết vị trí mà đối tượng được kết xuất trong kích thước bố cục của đối tượng (I72104)
  • Đóng gói logic tải SpatialGltfModel trong SpatialGltfModelState và làm rõ hành vi lỗi. (Ibe98b)
  • Làm rõ depth trong SubspaceModifer.size kdocs (I0f84f)

Phiên bản 1.0.0-alpha14

Ngày 19 tháng 5 năm 2026

Phát hành androidx.xr.compose:compose:1.0.0-alpha14 và androidx.xr.compose:compose-testing:1.0.0-alpha14. Phiên bản 1.0.0-alpha14 bao gồm các thay đổi sau.

Thay đổi về API

  • Giới thiệu transformingMovable cho chuyển động 3D mặc định do hệ thống xử lý và giới thiệu một phương thức nạp chồng mới cho movable để xử lý các hành vi chuyển động tuỳ chỉnh. (I50960)
  • Xoá SpatialGltfModel.fromData(). (I4d083)
  • Đã thêm một giao diện nút đối tượng sửa đổi mới, SubspaceMeasuredSizeAwareModifierNode, cung cấp một lệnh gọi lại onRemeasured sau lượt đo lường. SubspaceLayoutAwareModifierNode hiện mở rộng giao diện mới này. Đối tượng sửa đổi onSizeChanged đã được cập nhật để sử dụng onRemeasured, đảm bảo lệnh gọi lại được kích hoạt ngay sau khi đo lường, chứ không phải sau khi đặt. (Iafbae)
  • Cập nhật InteractionPolicy thành Interface (I0ff30)
  • Cập nhật compileSdk cho Compose lên API 37. Điều này có nghĩa là bạn phải dùng AGP phiên bản tối thiểu là 9.2.0 khi sử dụng Compose. (Id45cd)
  • Cập nhật kdocs Size (Iefa9a)

Phiên bản 1.0.0-alpha13

Ngày 6 tháng 5 năm 2026

Phát hành androidx.xr.compose:compose:1.0.0-alpha13 và androidx.xr.compose:compose-testing:1.0.0-alpha13. Phiên bản 1.0.0-alpha13 bao gồm các thay đổi sau.

Thay đổi về API

  • Orbiter API đang chờ những thay đổi bổ sung. Bạn nên bỏ qua thông báo không dùng nữa cho Orbiter và chú ý đến những thay đổi đối với Orbiter trong các bản phát hành sắp tới.
  • Những người dùng SceneCoreEntity để kết xuất glTF phải đảm bảo rằng họ đang truyền session.scene.activitySpace đến tham số parent của lệnh gọi GltfModel.create để đảm bảo glTF của họ sẽ kết xuất.
  • Thêm API SpatialGltfModel để cho phép nhà phát triển thêm Gltf vào các ứng dụng Compose cho XR. Nhà phát triển cũng có thể truy vấn ảnh động và các nút trong mô hình Gltf của họ. (I8b542, b/495422586)
  • Thay đổi SceneCoreEntitySizeAdapter từ lớp thành giao diện (I5a784, b/475292310)
  • Đổi tên SurfaceProtection thành SpatialExternalSurfaceProtection. Cập nhật kdocs SpatialExternalSurface (Ifad0a, b/485231082)
  • Ngừng sử dụng currentWindowAdaptiveInfo và giới thiệu phiên bản 2 của (I40ecf, b/424442112)
  • Giờ đây, đối tượng sửa đổi resizable ở chế độ công khai và áp dụng cho các nhóm (ví dụ: SpatialRow). (I2bcf6, b/348483527, b/489753178, b/479530787)
  • Đối tượng sửa đổi movable hiện được công khai. Đối tượng sửa đổi này hiện hoạt động tốt cho SpatialPanels và SpatialExternalSurface; tuy nhiên, mục đích là để các đối tượng sửa đổi này được hỗ trợ tốt cho tất cả SubspaceComposables. (I9a3cd, b/479530787, b/478935063, b/478935063)
  • SpatialEnterTransition và SpatialExitTransition được đánh dấu là @Immutable (If1710, b/487757837)
  • API SpatialGltfModel được đánh dấu là bị hạn chế cho bản phát hành này trong khi chờ kiểm thử thêm. (Ibf003, b/466090694)
  • Đổi tên DeviceTrackingMode.LAST_KNOWN thành SPATIAL_LAST_KNOWN (với một tính năng dự phòng không dùng nữa), thêm INERTIAL_LAST_KNOWN để theo dõi 3DoF và thêm TRACKING_DEGRADED vào TrackingState. (Ie661c, b/445466590)
  • Xoá SpatialLayoutSpacer không dùng nữa (I7b36c)
  • Xoá API khoảng đệm không dùng nữa (If1886)
  • Đã thêm floatRange vào các giá trị thiên vị. Xoá giá trị mặc định cho LayoutDirection (I9d74e)

Sửa lỗi

  • Thêm mã mẫu và tài liệu KDoc cho SpatialColumn, SpatialRow và SpatialCurvedRow. (Iaf54f, b/495777633)

Phiên bản 1.0.0-alpha12

Ngày 25 tháng 3 năm 2026

Phát hành androidx.xr.compose:compose:1.0.0-alpha12 và androidx.xr.compose:compose-testing:1.0.0-alpha12. Phiên bản 1.0.0-alpha12 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm API SpatialGltfModel và API SpatialGltfModelAnimation để kết xuất glTF và kiểm soát ảnh động. Đã thay đổi SpatialGltfModelState thành AutoCloseable, giờ đây, bạn sẽ cần đóng để giải phóng tài nguyên. (I11fde, b/466065486, b/481379924). Tuy nhiên, API SpatialGltfModel được đánh dấu là bị hạn chế cho bản phát hành này trong khi chờ kiểm thử thêm. (Ibf003, b/466090694)
  • Thêm một phương thức nạp chồng trống không dùng nữa cho SubspaceModifier.rotate. (Idceb6)
  • Đổi tên hàm SpatialSmoothFeatheringEffect thành spatialSmoothFeatheringEffect và chuyển hàm này sang một mô-đun vẽ. Cập nhật giá trị làm mờ mặc định SpatialExternalSurface thành giá trị rỗng, mô phỏng chức năng ZeroFeatheringEffect cũ. (I5fdaa, b/460426800)
  • Đã xoá onPointSourceParamsAvailable. Một API ảo hoá âm thanh khác sẽ được cung cấp trong tương lai gần. (I86507, b/458513439)
  • Thêm hành vi RTL cho các đối tượng sửa đổi không gian con có độ dời. Cũng thêm absoluteOffset để bỏ qua hướng bố cục. (I30e4b, b/474409165)

Phiên bản 1.0.0-alpha11

Ngày 25 tháng 2 năm 2026

Phát hành androidx.xr.compose:compose:1.0.0-alpha11 và androidx.xr.compose:compose-testing:1.0.0-alpha11. Phiên bản 1.0.0-alpha11 bao gồm các thay đổi sau.

Tính năng mới

  • Thêm tham số SuperSampling vào SpatialExternalSurfaces (Icd4d1)

Lỗi đã biết

  • Vấn đề với SurfaceEntity trong SceneCore có thể khiến ứng dụng gặp sự cố khi tạo các thực thể SpatialExternalSurface. Vấn đề này đã được giải quyết trong androidx.xr.scenecore:scenecore-*:1.0.0-alpha13, androidx.xr.compose:compose:1.0.0-alpha12 và các bản phát hành tiếp theo. Các ứng dụng bị ảnh hưởng cần cập nhật lên phiên bản mới nhất.

Thay đổi về API

  • Thay đổi khoảng đệm của đối tượng sửa đổi không gian con để nhận biết hướng bố cục. (I53e25)
  • SpatialCapabilities hiện đã được niêm phong và không thể gia hạn. (I07aef)
  • Các API SpatialRow và SpatialColumn chấp nhận tham số SpatialAlignment chung không được dùng nữa; thay vào đó, hãy sử dụng các API chấp nhận verticalAlignment hoặc horizontalAlignment cho SpatialRow và SpatialColumn tương ứng. (Iec390)
  • Kết hợp các API hàm SubspaceLayout nạp chồng (Idd30a)
  • Đổi tên SubspaceModifier.lookAtUser thành rotateToLookAtUser và tham số up thành upDirection. (Icafb8)
  • Tạo SpatialRow thành một hàm nội tuyến (Ia2f20)
  • Tạo SpatialColumn thành một hàm nội tuyến (I681be)
  • Xoá API bảng quảng cáo (Ib76cd)

Phiên bản 1.0.0-alpha10

Ngày 28 tháng 1 năm 2026

Phát hành androidx.xr.compose:compose:1.0.0-alpha10 và androidx.xr.compose:compose-testing:1.0.0-alpha10. Phiên bản 1.0.0-alpha10 bao gồm các thay đổi sau.

Thay đổi về API

  • Xoá API không dùng nữa – ApplicationSubspace (Ia6596, b/468345186)
  • Cập nhật SpatialShape thành một giao diện khép kín (I7e3f5, b/460426800)
  • Xoá các API không dùng nữa trong SpatialAlignment. (Ib0b61, b/468011887)
  • Không dùng SpatialLayoutSpacer nữa và ra mắt SpatialSpacer. (I2ebf3, b/466071383)
  • Đã cập nhật API UserSubspace để thay thế thuật ngữ "khoá trì hoãn" bằng "khoá mềm". (I9ded1, b/464035984)

Phiên bản 1.0.0-alpha09

Ngày 3 tháng 12 năm 2025

Phát hành androidx.xr.compose:compose:1.0.0-alpha09 và androidx.xr.compose:compose-testing:1.0.0-alpha09. Phiên bản 1.0.0-alpha09 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm các đối tượng sửa đổi LookAtUser và Billboard để nội dung luôn hướng về phía người dùng. (I49b99)
  • Thêm khả năng đặt InteractionPolicy thành SpatialExternalSurfaces và SpatialPanels, cho phép phát hiện các lượt nhấp và các sự kiện đầu vào 3D khác. (Iae155)
  • Thêm đối tượng sửa đổi kích thước và requiredSize với chiều rộng, chiều cao và độ sâu dưới dạng giá trị Dp. (I92f79)
  • Giao diện ParentLayoutParamsModifier hiện mở rộng DelegatableSubspaceNode. (I1a6d4)
  • ApplicationSubspace không được dùng nữa và được thay thế bằng Subspace API.
    • Hành vi của Subspace API được thay đổi để chỉ cung cấp một không gian con trên toàn ứng dụng ở tư thế và tỷ lệ được đề xuất.
    • API PlanarEmbeddedSubspace được ra mắt để cung cấp các không gian con được nhúng trong bối cảnh 2D. (Id3343)
  • Thêm cờ shouldAutoInvalidate vào API SubspaceModifier.Node. (I93902)
  • Thêm required(Size|Width|Depth|Height)In API cho phép nhà phát triển giới hạn kích thước của @SubspaceComposable trong một phạm vi cụ thể, bất kể các điều kiện ràng buộc đo lường sắp tới của thành phần mẹ. (Ifaa78)
  • Đã thêm SubspaceModifier.onSizeChanged cung cấp một lệnh gọi lại đơn giản, tập trung để nhà phát triển phản ứng khi kích thước của @SubspaceComposable thay đổi. (I994f9)
  • Xoá Volume API. Bạn nên sử dụng API SceneCoreEntity thay vì Volume API. (I4162b)
  • Chia SubspaceLayoutModifierNode.requestRelayout thành invalidateMeasurement/invalidatePlacement. (I14805)
  • Thêm API SpatialGltfModel cho phép nhà phát triển kết xuất glTF trong Compose. (Icc91f)
  • Giới thiệu API có khả năng kết hợp SpatialGltfModel để dễ dàng kết xuất glTF (Iade67)

Sửa lỗi

  • Khắc phục một lỗi bố cục trong SceneCoreEntity. Giờ đây, thành phần này sẽ tôn trọng các điều kiện ràng buộc một cách phù hợp. (I11bb8)
  • Giảm các mô-đun jxr-compose xuống Compile sdk = 34 (I2d5db)

Phiên bản 1.0.0-alpha08

Ngày 22 tháng 10 năm 2025

Phát hành androidx.xr.compose:compose:1.0.0-alpha08 và androidx.xr.compose:compose-testing:1.0.0-alpha08. Phiên bản 1.0.0-alpha08 bao gồm các thay đổi sau.

Thay đổi về API

  • Thay đổi ResizePolicy để chấp nhận onResizeStart, onResizeUpdate và onResizeEnd. (I7e21f)

Sửa lỗi

  • Ngăn sự cố khi huỷ một Hoạt động có Không gian con. (I595a1)

Phiên bản 1.0.0-alpha07

Ngày 24 tháng 9 năm 2025

Phát hành androidx.xr.compose:compose:1.0.0-alpha07 và androidx.xr.compose:compose-testing:1.0.0-alpha07. Phiên bản 1.0.0-alpha07 bao gồm các thay đổi sau.

Thay đổi về API

  • Cải thiện KDocs cho SpatialMainPanel. (I27b70, b/444467891)
  • Giới thiệu SpatialArrangement để sắp xếp các thành phần con dọc theo trục chính trong bố cục 3D như SpatialRow và SpatialColumn. API mới này cung cấp các lựa chọn sắp xếp quen thuộc từ Compose 2D, bao gồm Start, End, Center, SpaceBetween, SpaceAround và SpaceEvenly, với khả năng hỗ trợ đầy đủ cho cả hướng bố cục từ trái sang phải (LTR) và từ phải sang trái (RTL). (I7db38, b/436289959)
  • Thêm một giao diện cơ sở cho SubspaceModifier.Node để cải thiện độ an toàn về kiểu và khả năng sử dụng của các giao diện tiện ích; chẳng hạn như
    • CompositionLocalConsumerSubspaceModifierNode
    • LayoutCoordinatesAwareModifierNode
    • SubspaceLayoutModifierNode
    • CoreEntityNode (nội bộ) (Iede00, b/440599394, b/440599394)
  • Unrestrict SpatialExternalSurface (I33315, b/439646773)
  • Giới thiệu SubspaceModifier cho các thành phần kết hợp Subspace và thay thế tham số ràng buộc bằng SubspaceModifier có SubspaceModifiers liên quan đến kích thước. Nếu allowUnboundedSubspace là true, thì Không gian con vẫn có thể có các điều kiện ràng buộc không giới hạn. (Ib06e6, b/433331675)
  • Ngừng sử dụng SubspaceModifiers có thể di chuyển và đổi kích thước vì DragPolicy() và ResizePolicy() là một phần của API SpatialPanel và SpatialExternalSurface (I397bf, b/437924639)
  • Thêm tính năng hỗ trợ cho LayoutDirection trong bố cục không gian. Thành phần kết hợp sử dụng SpatialAlignment hiện sẽ định vị chính xác các phần tử trong cả ngữ cảnh LTR và RTL. (I964bb, b/436300273)
  • Thêm các tham số Resizable (Có thể đổi kích thước) và Movable (Có thể di chuyển) vào API Panel để đảm bảo rằng các hành vi này chỉ có thể được áp dụng cho các vùng chứa được hỗ trợ. (Id491c)
  • Thêm sizeIn, widthIn, heightIn, depthIn SubspaceModifiers cho phép bạn đặt các ràng buộc tối thiểu và tối đa chính xác cho chiều rộng, chiều cao và độ sâu. (I1af09, b/433330761)

Phiên bản 1.0.0-alpha06

Ngày 13 tháng 8 năm 2025

Phát hành androidx.xr.compose:compose:1.0.0-alpha06 và androidx.xr.compose:compose-testing:1.0.0-alpha06. Phiên bản 1.0.0-alpha06 bao gồm các thay đổi sau.

Sửa lỗi

  • Tạo lại ComposeXrOwnerLocals khi chủ sở hữu vòng đời bị huỷ. (9123ce1)

Phiên bản 1.0.0-alpha05

Ngày 30 tháng 7 năm 2025

Phát hành androidx.xr.compose:compose:1.0.0-alpha05 và androidx.xr.compose:compose-testing:1.0.0-alpha05. Phiên bản 1.0.0-alpha05 bao gồm các thay đổi sau.

Tính năng mới

  • Đã đặt lớp chú giải SubspaceComposable ở chế độ công khai. (Ic2a34, b/399432430)
  • Hai thành phần kết hợp SpatialExternalSurface mới biểu thị các hình cầu 180 và 360 độ. (I40ef2, b/391705799)
  • Thêm SubspaceModifier.aspectRatio (Ide5ab, b/399729509, b/414762147)
  • Thêm API SceneCoreEntity để cải thiện khả năng tương tác giữa SceneCore và Compose cho XR. (I50bb3, b/423020989)
  • Cung cấp API GravityAlignedsubspace để hỗ trợ tính năng GravityAligned chưa được mở rộng (I07359)

Thay đổi về API

  • SpatialDialog() sẽ tuân theo cấu hình nhấn SpatialDialogProperties.dismissOnBack. (Ib453b, b/416797132)
  • Cập nhật minimumPanelDimension thành kích thước Phương diện mặc định mới là Dimensions(0.1f, 0.1f, 0.1f) do kích thước này được biểu thị bằng Mét. (Ib852a)
  • Giờ đây, các không gian con và Orbiter sẽ giữ lại trạng thái nội bộ của chúng trong không gian chính và khi ứng dụng ở chế độ nền. Ở chế độ không gian chính, Subspace vẫn sẽ thiết lập cảnh để chuẩn bị chuyển sang chế độ toàn không gian. (I40317, b/416037751)
  • Giờ đây, SpatialDialogs sẽ giữ lại trạng thái của chúng khi ứng dụng ở chế độ nền. (I6aa56)
  • Giờ đây, ApplicationSubspace sẽ kế thừa tỷ lệ và vị trí được đề xuất từ hệ thống. (I4565f, b/418834194)
  • Thêm thông báo lỗi hiệu quả hơn và kích hoạt lỗi sớm hơn khi SubspaceComposable được dùng trong một ngữ cảnh không phải SubspaceComposable. (Iee2ae, b/416484684)
  • Cập nhật ExperimentalSubspaceVolumeApi từ Cảnh báo thành Lỗi vì cảnh báo thường bị bỏ qua khi sử dụng sai các API có thể kết hợp. (I427aa, b/424864286)
  • Không gian con và ApplicationSubspace hiện bị giới hạn bởi recommendedContentBoxInFullSpace. Trước đây, nó bị hạn chế bởi Trường nhìn của SpatialUser. (I41015, b/423074142)
  • Cập nhật SpatialElevation để sử dụng kích thước tối thiểu, không còn sử dụng kích thước được mã hoá cứng (I2dbe6, b/427785338)
  • Cập nhật cách chúng ta che SpatialAcitivityPanel để cập nhật khi một biến khoá được sửa đổi. (I0f64d, b/427999029)
  • Xoá VolumeConstraints.Unbounded để đặt các giá trị ràng buộc mặc định thành giá trị tương đương. (Ie24ec, b/407938414)
  • SpatialFeatheringSize không còn ở chế độ công khai nữa (I1c15b, b/399432430)
  • Đổi tên Placeable XR thành SubspacePlaceable để phân biệt với Placeable của Compose. (I74874)
  • Xoá chế độ cài đặt Orbiter và thêm shouldRenderInNonSpatial làm tham số mới. Ngoài ra, hãy xoá lớp EdgeOffset và thêm orbiterOffsetType làm tham số mới để hợp nhất các hàm Orbiter(). Cũng như đổi tên OrbiterEdge thành ContentEdge. (Iebf3d)
  • Đổi tên Measurable thành SubspaceMeasurable để phân biệt loại này với loại Measurable của Compose. (I9726c)
  • Đổi tên MeasureResult thành SubspaceMeasureResult (I9f34d)
  • Xoá API setSubspaceContent để sử dụng setContent của Compose với thành phần kết hợp Subspace. (Ifff4c, b/421427391, b/421427391)
  • MeasurePolicy đổi tên thành SubspaceMeasurePolicy. (I37a9b, b/422553904)
  • Chuyển SubspaceSemanticsInfo thành một giao diện kín vì chúng ta sẽ không thể thêm các thành phần mà không có giá trị mặc định. (I372f9, b/423704068)
  • Cập nhật tài liệu SpatialExternalSurface, đổi tên ContentSecurityLevel thành SurfaceProtection (I3c460, b/420982808)
  • Cung cấp hàm khởi tạo quá tải cho đối tượng sửa đổi có thể di chuyển cho phép neo. (Ic0c70)
  • Thêm nhiều trình cung cấp vị trí hơn cho chú thích để giờ đây, nhà phát triển có thể kiểm soát việc chú thích được đặt ở phía trên, phía dưới, bên trái hay bên phải của điểm neo. Thêm một API nhận một Hình dạng cho dấu nháy, để có thể cung cấp nhiều hình dạng tuỳ chỉnh hơn. (Ie513c, b/374766087, b/418854637)
  • Xoá CoreEntity dưới dạng PublishedApi (Ifee05)

Sửa lỗi

  • Khắc phục vấn đề SpatialDialog nhấp nháy khi được kết xuất. (Ife73c, b/401619909)
  • Khắc phục vấn đề SpatialDialog không thể che Bảng điều khiển hoạt động. (I8ca6c, b/367442109)
  • Khắc phục lỗi hộp thoại XR không hiển thị một số nội dung (I17cd5, b/418062437)
  • Khắc phục vấn đề SpatialPopup bị đóng khi người dùng nhấp vào bên trong nội dung. (If262c, b/417245722)
  • Khắc phục vấn đề khi chuỗi resizable().movable(), SpatialPanel không đổi kích thước chính xác thành kích thước mới. (I02ee3, b/422264230)
  • Khắc phục lỗi topBar trùng lặp với trình đơn trong SpatialComposeVideoPlayer (Id33bc, b/427168167)
  • Khắc phục lỗi bán kính góc không hiển thị (I975fe, b/428261830)

Phiên bản 1.0.0-alpha04

Ngày 7 tháng 5 năm 2025

Phát hành androidx.xr.compose:compose:1.0.0-alpha04 và androidx.xr.compose:compose-testing:1.0.0-alpha04. Phiên bản 1.0.0-alpha04 bao gồm các thay đổi sau.

Tính năng mới

  • Đã thêm giao diện CompositionLocalConsumerSubspaceModifierNode để cho phép các loại SubspaceModifier tuỳ chỉnh truy cập vào các giá trị cục bộ của thành phần.
  • Đã thêm một API SpatialPanel mới tuân theo kiểu triển khai AndroidView của Compose và không dùng ViewBased SpatialPanel trước đó nữa.
  • Đã thêm đối tượng đồng hành VolumeConstraints.Unbounded, đại diện cho các ràng buộc không giới hạn.
  • Thêm SubspaceModifier.onPointSourceParams để cho phép nguồn âm thanh được không gian hoá.
  • Một ApplicationSubspace công khai đã được thêm, cung cấp VolumeConstraints không bắt buộc để xác định một khu vực 3D nơi ứng dụng có thể kết xuất nội dung không gian. Theo mặc định, nếu không có điều kiện ràng buộc nào được chỉ định, Subspace sẽ bị giới hạn bởi trường nhìn hiện tại của SpatialUser theo chiều rộng và chiều cao. Người dùng có thể cung cấp các ràng buộc để sử dụng nếu không xác định được trường nhìn. Nếu không, các giá trị mặc định về chiều rộng và chiều cao của trường nhìn sẽ được sử dụng.
  • Thêm SpatialExternalSurface, có thể dùng để kết xuất nội dung lập thể. SpatialExternalSurface có thể tuỳ chỉnh bằng các đối tượng sửa đổi (ngoại trừ alpha) và hiệu ứng làm mờ cạnh.
  • Thêm một Đối tượng sửa đổi không gian phụ pointerHoverIcon mới cho phép người dùng đặt biểu tượng cho con trỏ không gian.

Thay đổi về API

  • Xoá hạn chế RequiresApi(34) đối với tất cả các gói Jetpack XR. Hạn chế này là không cần thiết vì Jetpack XR hiện chỉ có trên các thiết bị có cấp độ API 34 trở lên. (Iae0f8)
  • Các dự án được phát hành bằng Kotlin 2.0 yêu cầu sử dụng KGP 2.0.0 trở lên. (Idb6b5)
  • Giờ đây, thao tác xử lý nút quay lại sẽ hoạt động trên các bảng điều khiển không gian mà không có hoạt động được nhúng. Để tính năng xử lý thao tác quay lại hoạt động, bạn cần chỉ định android:enableOnBackInvokedCallback="true" trong tệp kê khai Android.
  • Tính năng xử lý thao tác quay lại hiện sẽ hoạt động trên các hộp thoại không gian. Để tính năng xử lý thao tác quay lại hoạt động, bạn cần chỉ định android:enableOnBackInvokedCallback="true" trong tệp kê khai Android.
  • Giờ đây, SpatialPanel dựa trên Compose và dựa trên Khung hiển thị có thể tự điều chỉnh kích thước dựa trên nội dung của chúng.
  • Giờ đây, nhà phát triển có thể đặt các giá trị SpatialElevationLevel tuỳ chỉnh của riêng mình và không bị giới hạn ở các cấp độ được xác định trước.
  • Giờ đây, bạn có thể tuỳ chỉnh cấp độ độ cao của vệ tinh nhân tạo thông qua tham số elevation.
  • Giờ đây, không gian con có thể bị giới hạn theo chiều rộng và chiều cao của trường nhìn SpatialUser theo mặc định. Nếu không xác định được trường nhìn, hệ thống sẽ sử dụng các giá trị chiều rộng và chiều cao mặc định của trường nhìn.
  • Đã thêm các lệnh gọi lại onMoveStart và onMoveEnd mới vào đối tượng sửa đổi Movable. Các lệnh gọi lại onMoveStart và onMoveEnd được gọi khi người dùng bắt đầu và kết thúc việc di chuyển một thành phần kết hợp không gian con bằng công cụ sửa đổi có thể di chuyển.
  • Tham số name đã bị xoá khỏi các API không gian như SpatialRow và SpatialPanel. Để gỡ lỗi cây thành phần không gian, hãy sử dụng SubspaceModifier.testTag.
  • Xoá một phương thức nạp chồng không được hỗ trợ của SpatialPopup chỉ có spatialElevationLevel và content. Vui lòng sử dụng giao diện hỗ trợ onDimissRequest.
  • Lệnh gọi lại onPoseChange từ đối tượng sửa đổi Movable đã bị xoá. Thay vào đó, hãy sử dụng onMove.
  • SubspaceModifiers sẽ không còn áp dụng hiệu ứng nếu bị tách rời hoặc đang tách rời.
  • API SpatialRow hiện có đã được chia thành SpatialRow và SpatialCurvedRow. Nếu trước đây bạn đã sử dụng tham số curveRadius của SpatialRow, thì bây giờ hãy dùng SpatialCurvedRow để có hành vi tương tự.
  • MainPanel và ActivityPanel không còn có thanh tiêu đề khi chạy trên một hình ảnh hệ thống gần đây tương tự.
  • Giờ đây, bạn có thể xếp chồng các đối tượng sửa đổi độ trong suốt và tỷ lệ, đồng thời các đối tượng này sẽ nhân giá trị của chúng để có được giá trị độ trong suốt hoặc tỷ lệ được áp dụng cuối cùng.
  • Lệnh gọi lại onPoseChange từ đối tượng sửa đổi Movable đã được tối ưu hoá để thực hiện chuyển động tư thế mượt mà hơn.
  • Giờ đây, các đối tượng sửa đổi có thể di chuyển và đổi kích thước sẽ thực hiện lệnh gọi lại trên luồng chính để đảm bảo rằng các thay đổi về trạng thái sẽ kích hoạt quá trình tái cấu trúc.
  • Thêm hoạt động quan sát trạng thái vào các giai đoạn bố cục và đo lường để đảm bảo rằng các thay đổi về trạng thái trong SubspaceLayout sẽ kích hoạt quá trình bố trí lại.
  • Cập nhật chuỗi công cụ sửa đổi được tối ưu hoá để sử dụng lại các công cụ sửa đổi hiện có một cách hiệu quả hơn.

Sửa lỗi

  • Ngừng làm mờ khi SpatialDialog xuất hiện. (Ic4594)
  • Các yêu cầu bố trí lại được thực hiện trong khi các nút sửa đổi bị tách rời sẽ bị bỏ qua.
  • Xoá các giai đoạn bố trí lại do đối tượng sửa đổi Movable và Resizable kích hoạt.
  • Khắc phục sự cố trong thành phần kết hợp MainPanel() xảy ra khi một trong hai phương diện được đặt thành 0, trực tiếp hoặc trong quá trình tính toán bố cục, ví dụ: tính toán SpatialRow/SpatialColumn. Giờ đây, bảng điều khiển sẽ bị ẩn. Xin lưu ý rằng bản sửa lỗi này đặc biệt giải quyết các sự cố trong giai đoạn bố cục; việc đổi kích thước bảng điều khiển thành 0 thông qua hoạt động tương tác của người dùng sẽ được xử lý riêng. Bảng điều khiển ẩn thiếu các thành phần tương tác trên giao diện người dùng.
  • Khắc phục vấn đề với maintainAspectRatio từ đối tượng sửa đổi có thể đổi kích thước. Tỷ lệ khung hình hiện tại sẽ được giữ nguyên.
  • Khắc phục vấn đề với các Không gian con lồng ghép, trong đó các Không gian con này sẽ được đặt không chính xác cho một khung hình.
  • Khắc phục vấn đề đôi khi các góc bo tròn không được áp dụng khi cần.
  • NestedSubspaces sẽ không còn xuất hiện trong một khung hình ở vị trí không chính xác nữa.

Phiên bản 1.0.0-alpha03

Ngày 26 tháng 2 năm 2025

androidx.xr.compose:compose:1.0.0-alpha03 và androidx.xr.compose:compose-testing:1.0.0-alpha03 được phát hành mà không có thay đổi đáng kể nào kể từ phiên bản alpha gần đây nhất. Phiên bản 1.0.0-alpha03 bao gồm các thay đổi sau

Phiên bản 1.0.0-alpha02

Ngày 12 tháng 2 năm 2025

Phát hành androidx.xr.compose:compose:1.0.0-alpha02 và androidx.xr.compose:compose-testing:1.0.0-alpha02. Phiên bản 1.0.0-alpha02 bao gồm các thay đổi sau.

Tính năng mới

  • Giờ đây, Bảng điều khiển hoạt động có thể làm mờ nội dung khi một Hộp thoại không gian được kích hoạt.
  • Giờ đây, bạn có thể sử dụng API Orbiter trong các ngữ cảnh SubspaceComposable và sẽ đính kèm các Orbiter vào thành phần kết hợp mẹ gần nhất dựa trên SubspaceLayout.
  • Giới thiệu LayoutCoordinatesAwareModifierNode để cho phép các đối tượng chỉnh sửa tuỳ chỉnh dựa trên vị trí.
  • Thêm các phương thức trong vòng đời đính kèm/tách rời vào SubspaceModifier.Node.
  • Đã thêm scaleWithDistance vào đối tượng sửa đổi có thể di chuyển. Khi scaleWithDistance được bật, phần tử không gian con được di chuyển sẽ giãn ra hoặc thu nhỏ. Thành phần này cũng sẽ duy trì mọi tỷ lệ rõ ràng mà thành phần đó có trước khi di chuyển.

Thay đổi về API

  • Đã xoá SessionCallbackProvider và thay bằng SpatialCapabilities.

Các thay đổi khác

  • Giảm minSDK xuống còn 24. Tất cả API Jetpack XR đều tiếp tục yêu cầu API 34 tại thời gian chạy.
  • Các hàm khởi tạo Orbiter EdgeOffset.inner, EdgeOffset.outer và EdgeOffset.overlap không còn là các phương thức @Composable nữa, cho phép sử dụng chúng trong các ngữ cảnh không kết hợp.
  • Cập nhật Cấp độ độ cao không gian cho phù hợp với quy cách trải nghiệm người dùng mới nhất.
  • Triển khai giao diện SubspaceSemanticsInfo vào MeasurableLayout.
  • Đổi tên SubspaceModifierElement thành SubspaceModifierNodeElement.

Sửa lỗi

  • Sửa lỗi để ổn định việc sắp xếp SubspaceModifier. SubspaceModifier sẽ hoạt động ổn định hơn. Giờ đây, bạn có thể sử dụng đối tượng sửa đổi bù, xoay, thu phóng, di chuyển và đổi kích thước theo bất kỳ thứ tự nào.

Phiên bản 1.0.0-alpha01

Ngày 12 tháng 12 năm 2024

Phát hành androidx.xr.compose:compose-*1.0.0-alpha01.

Các tính năng của bản phát hành ban đầu

  • Bản phát hành đầu tiên của Jetpack Compose cho XR dành cho nhà phát triển. Sử dụng các khái niệm quen thuộc của Compose như hàng và cột để tạo bố cục giao diện người dùng không gian trong XR, cho dù bạn đang chuyển một ứng dụng 2D hiện có sang XR hay tạo một ứng dụng XR mới từ đầu. Thư viện này cung cấp các thành phần kết hợp không gian và không gian con: chẳng hạn như các bảng không gian và các thành phần kết hợp quỹ đạo, cho phép bạn đặt giao diện người dùng 2D dựa trên Khung hiển thị hoặc Compose hiện có vào một bố cục không gian. Thành phần kết hợp này giới thiệu không gian phụ Volume, cho phép bạn đặt các thực thể SceneCore (chẳng hạn như mô hình 3D) liên quan đến giao diện người dùng. Tìm hiểu thêm trong hướng dẫn dành cho nhà phát triển này:

    • Subspace: Bạn có thể đặt thành phần kết hợp này ở bất kỳ vị trí nào trong hệ phân cấp giao diện người dùng của ứng dụng, cho phép bạn duy trì bố cục cho giao diện người dùng 2D và giao diện người dùng không gian mà không làm mất bối cảnh giữa các tệp. Điều này giúp bạn dễ dàng chia sẻ những thứ như cấu trúc ứng dụng hiện có giữa XR và các hệ số hình dạng khác mà không cần nâng trạng thái thông qua toàn bộ cây giao diện người dùng hoặc thiết kế lại ứng dụng.

    • SpatialPanel: SpatialPanel là một thành phần kết hợp không gian cho phép bạn hiển thị nội dung ứng dụng. Ví dụ: bạn có thể hiển thị nội dung phát video, hình ảnh tĩnh hoặc bất kỳ nội dung nào khác trong SpatialPanel.

    • Orbiter: Orbiter là một thành phần giao diện người dùng không gian. Thanh này được thiết kế để gắn vào một bảng điều khiển không gian tương ứng, đồng thời chứa các mục điều hướng và thao tác theo ngữ cảnh liên quan đến bảng điều khiển không gian đó. Ví dụ: nếu đã tạo một bảng điều khiển không gian để hiển thị nội dung video, bạn có thể thêm các nút điều khiển phát video vào bên trong một orbiter.

    • Âm lượng: Đặt các thực thể SceneCore (chẳng hạn như mô hình 3D) tương ứng với giao diện người dùng.

  • Bố cục không gian: Bạn có thể tạo nhiều bảng điều khiển không gian và đặt chúng trong Bố cục không gian bằng cách dùng SpatialRow, SpatialColumn, SpatialBox và SpatialLayoutSpacer. Dùng SubspaceModifier để tuỳ chỉnh bố cục.

  • Các thành phần giao diện người dùng không gian: Bạn có thể dùng lại các phần tử này trong giao diện người dùng 2D và các thuộc tính không gian của chúng sẽ chỉ xuất hiện khi bạn bật các chức năng không gian.

    • SpatialDialog: Bảng điều khiển sẽ đẩy nhẹ về phía sau theo chiều sâu z để hiển thị một hộp thoại có độ cao.
    • SpatialPopUp: Bảng điều khiển sẽ đẩy nhẹ về phía sau theo chiều sâu z để hiển thị một cửa sổ bật lên ở vị trí cao hơn
    • SpatialElevation: Bạn có thể đặt SpatialElevationLevel để thêm độ cao.
  • SpatialCapabilities: Các chức năng không gian có thể thay đổi khi người dùng tương tác với ứng dụng hoặc hệ thống của bạn, hoặc thậm chí có thể do chính ứng dụng của bạn thay đổi – ví dụ: chuyển sang chế độ Không gian chính hoặc Toàn bộ không gian. Để tránh gặp phải vấn đề, ứng dụng của bạn cần kiểm tra LocalSpatialCapabilities.current để xác định những API được hỗ trợ trong môi trường hiện tại. isSpatialUiEnabled: Các phần tử giao diện người dùng không gian (ví dụ: SpatialPanel) isContent3dEnabled: Đối tượng 3D isAppEnvironmentEnabled: Môi trường isPassthroughControlEnabled: Ứng dụng có thể kiểm soát trạng thái truyền qua hay không isSpatialAudioEnabled: Âm thanh không gian

Lỗi đã biết

  • Hiện tại, bạn phải có minSDK là 30 để dùng Jetpack Compose cho XR. Để khắc phục, bạn có thể thêm mục nhập tệp kê khai <uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/> sau đây để có thể tạo và chạy với minSDK là 23.
  • Các ứng dụng Jetpack XR hiện yêu cầu cấp quyền android.permission.SCENE_UNDERSTANDING trong AndroidManifest.
  • Khi một ứng dụng khởi chạy trực tiếp vào chế độ Toàn bộ không gian bằng cách sử dụng thuộc tính PROPERTY_XR_ACTIVITY_START_MODE trong tệp kê khai, các Hoạt động/Ứng dụng ban đầu sẽ mở ở chế độ Không gian chính trước khi chuyển sang chế độ Toàn bộ không gian.
  • glTF trong Volume Composables có thể nhấp nháy ở vị trí không chính xác vào lúc ban đầu.
  • Việc sử dụng SpatialDialog trong một bảng điều khiển đã được di chuyển đáng kể sẽ đẩy nội dung đi sai hướng.