Jetpack Compose untuk XR
| Update Terbaru | Rilis Stabil | Kandidat Rilis | Rilis Beta | Rilis Alfa |
|---|---|---|---|---|
| 23 September 2026 | - | - | 1.0.0-beta01 | - |
Mendeklarasikan dependensi
Untuk menambahkan dependensi pada XR compose, Anda harus menambahkan repositori Maven Google ke project Anda. Baca repositori Maven Google untuk mengetahui informasi selengkapnya.
Tambahkan dependensi untuk artefak yang diperlukan dalam file build.gradle bagi aplikasi atau modul Anda:
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") }
Untuk informasi dependensi selengkapnya, lihat Menambahkan dependensi build.
Masukan
Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau mempunyai masukan untuk meningkatkan kualitas library ini. Harap periksa masalah yang sudah diketahui dalam library ini sebelum membuat laporan baru. Anda dapat memberikan suara untuk masalah yang sudah diketahui dengan mengklik tombol bintang.
Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.
Versi 1.0
Versi 1.0.0-beta01
23 September 2026
androidx.xr.compose:compose:1.0.0-beta01 dan androidx.xr.compose:compose-testing:1.0.0-beta01 dirilis. Versi 1.0.0-beta01 berisi commit ini.
Perubahan API
- Menghapus
DragPolicyyang tidak digunakan lagi. Sebagai gantinya, gunakanSubspaceModifier.movable(). (I108d4) - Menghapus
ResizePolicyyang tidak digunakan lagi dan penggunaannya diSpatialPaneldanSpatialExternalSurface. Menghapus fungsiSubspaceModifier.resizableyang tidak digunakan lagi. GunakanSubspaceModifier.resizablebaru denganResizePolicybaru sebagai gantinya. (I59e6b) - Menambahkan parameter
isPitchUpdateEnableduntuk memungkinkan pengaktifan atau penonaktifan pelacakan nada secara terpisah. (Ie9e86) - Menghapus nullabilitas
pitchLimitsdan mengganti namaPitchLimits.UNCONSTRAINEDmenjadiPitchLimits.FullRange. (I0154f) ExposedDropdownMenukini menjadi fungsi ekstensi padaExposedDropdownMenuBoxScope, bukan anggota. Anda mungkin perlu memperbarui kode dengan impor baru. (Ie8a65)- Menghapus class
SurfaceProtectionyang tidak digunakan lagi. Sebagai gantinya, gunakanSpatialExternalSurfaceProtection. (Iab2c6) - Fungsi Orbiter yang menggunakan
OrbiterPoseProvidertelah dihentikan dan digantikan dengan fungsi yang menggunakanSpatialAlignment. (I4d12b) SpatialActivityPanelkini memerlukanSpatialActivityPanelController(dibuat instance menggunakanrememberSpatialActivityPanelController) untuk meluncurkan dan mengelola aktivitas sematan. (Id25c6)- Menghapus parameter
upDirectiondarirotateToLookAtUserdan menambahkan parameter batasan rotasi (isYawUpdateEnableddanpitchLimits). (I1370a)
Perbaikan Bug
- Memperbaiki berbagai masalah
InteractionPolicy. Error terjadi jika peristiwa input terjadi tepat saat Composable atau turunan (misalnya Orbiter) memulai urutan pelepasan. Juga memperbaiki masalah saat turunan menerima peristiwa pengarahan kursor. (Ifc477) - Mengurangi ukuran panel di
RotateToLookAtUserActivityuntuk mencegah pemangkasan pada perangkat FOV yang lebih kecil. (I8d672)
Masalah Umum
- Ada masalah pada panel Compose XR di mana pembuatan banyak panel dalam satu Aktivitas dapat menyebabkan kerusakan pada apa yang sedang dilihat, bahkan setelah panel dihancurkan.
Versi 1.0.0-alpha17
12 Agustus 2026
androidx.xr.compose:compose:1.0.0-alpha17 dan androidx.xr.compose:compose-testing:1.0.0-alpha17 dirilis. Versi 1.0.0-alpha17 berisi commit ini.
Perubahan API
- Hapus class nilai
Meter, yang digantikan olehvirtualPixelDensitydiScenecore. (I690ee) SpatialGltfModelAPI kini bersifat eksperimental dan harus diikutsertakan untuk digunakan. (I4557e)- Menjadikan
systemyang dapat diubah ukurannya nullable (Ib0093) - Mengekspos
DensitydiSubspaceSemanticsInfountuk pengujian. (I2e826) - Mengganti nama opsi default
ResizePolicymenjadisystemdan menambahkan opsiDefaultbaru tanpa parameter (Ic8b16) - Menandai
FollowTargetsebagai eksperimental. SeluruhFollowingSubspaceAPI kini bersifat eksperimental. (Id4ee3) - Menghapus API
GltfAnimation(Ic2894) - Mengganti nama metode
MovePolicy.default()berparameter menjadiMovePolicy.system(). Memperkenalkan propertival MovePolicy.Defaultuntuk merepresentasikan perilaku gerakan default standar. (Iedcc9) - Memperluas persyaratan keikutsertaan
ExperimentalMoveAnchorPolicykePlaneSemanticdanPlaneOrientation(Ief927) - Menghapus
resetMinsdariVolumeConstraints.offset(Ib2f2f) - Menghapus fungsi
SceneCoreEntitySizeAdapteryang tidak digunakan lagi. (Ib6722) - Menghapus overload
Subspaceyang tidak digunakan lagi denganallowUnboundedSubspace. (I8e97f) - Menghapus overload pengubah semantik yang tidak digunakan lagi. (I4ac10)
Perbaikan Bug
- Memperbaiki masalah saat turunan
ComposabledenganInteractionPolicyterlampir memicu peristiwa input (Icdba6)
Versi 1.0.0-alpha16
15 Juli 2026
androidx.xr.compose:compose:1.0.0-alpha16 dan androidx.xr.compose:compose-testing:1.0.0-alpha16 dirilis. Versi 1.0.0-alpha16 berisi commit ini.
Perubahan API
- Menghapus API
ComponentOverride(I820c4) - API
GltfAnimationdanSpatialGltfModelAnimationtelah ditandai sebagai eksperimental. Beberapa properti diubah menjadi getter. (I8d689, b/524771027) - Memperbaiki perilaku kepadatan keseluruhan yang tetap dengan menetapkan konversi antara Meter dan piksel agar tetap konstan. Meter.kt yang tidak digunakan lagi,
Session.scene.virtualPixelDensitykini dapat digunakan sebagai alternatif. (I122ff, b/430097855, b/474168798) - Memperbarui pengubah yang dapat diubah ukurannya untuk menggunakan
ResizePolicy, bukan dua pengubah (I7fb0f, b/496257436, b/519672992) - Menambahkan parameter toleransi:
Dp = Dp(0.5f)ke semua pernyataan kesamaan posisi dan dimensi floating point publik diSubspaceAssertions.kt. Perilaku toleransi default (0.5.dp) didokumentasikan sepenuhnya. (I266cb, b/521491915) - Menambahkan overload yang dapat dipindahkan dengan parameter
movePolicydan menghentikan penggunaantransformingMovabledanmovable(Ic88c1, b/481781189) - Menambahkan varian item daftar standar dan item daftar tersegmentasi non-interaktif baru yang mengikuti spesifikasi Material Expressive. Versi yang tidak ekspresif tidak digunakan lagi. (Ide4de, b/491994186)
- Untuk Subruang, parameter
allowUnboundedSubspacekini tidak digunakan lagi dan disembunyikan. Perilaku tanpa batas kini dapat dicapai dengan menggunakanSubspaceModifier.requiredSizeIn(maxWidth=Dp.Infinity,maxHeight=Dp.Infinity,maxDepth=Dp.Infinity) pada pengubah Subspace. ParameterallowUnboundedSubspacetelah dihapus dariFollowingSubspace. (Ia72ae, b/433624021) - Mengonversi
Session.createmenjadi fungsi penangguhan. (I5d27f) - Menambahkan
SubspaceModifier.spatializedAudioOutputyang memungkinkan spasialisasi pemutaran audio melaluiExoPlayeratau melaluiSoundEffectPlayer(I46697, b/489421980, b/497867019) - Memperbarui
ComponentActivity.requestHomeSpace()danrequestFullSpace()untuk menampilkanSpaceRequestResultuntuk verifikasi status. (If1672) - Memperbarui
AnchorEntityagar disebutAnchorSpace(Ifa95e, b/513619219) - Metode
fromResourceyang tidak dibatasi dariSpatialGltfModelSource(I1f5a1, b/503047416) - Anggota
SubspaceSemanticsMatcherbersifat publik: propertidescription, metode factory pendamping (expectValue,keyIsDefined,keyNotDefined), fungsi anggota (matches,matchesAny), dan operator (and,or,not). (I972a4, b/460427288) - Memperbarui
SubspaceModifier.semantics,SubspaceModifier.testTag,SubspaceSemanticsInfo,SubspaceSemanticsModifierNodeuntuk menggunakan jenis semantik spasial yang dikurasi. (I80dea, b/460427288) - Mengganti nama
positionmenjadialigndiSpatialAlignmentdan menghapus metode offset arah individual untuk mendukung APIalignterpadu. (I9bdb2, b/479805937) - Menghapus API Mode Ruang yang Tidak Digunakan Lagi dari
SpatialConfiguration. (I1ef5c, b/458712461) - Memperkenalkan
SubspaceSemanticsConfiguration. Ini adalah konfigurasi properti semantik untuk node Spasial. Class ini secara aman mengekspos metode kueri untuk semantik 3D tanpa membocorkan kemampuan semantik 2D dasar kepada konsumen eksternal. (Id025e, b/460427288) - Memperkenalkan
SubspaceSemanticsPropertyReceiver: wrapper khusus yang membatasi properti penampung tata letak 3D ke kolom yang valid (awalnyatestTagdancontentDescription). (I5cf5c, b/460427288)
Perbaikan Bug
- Memperbarui
hasContentDescriptionpengubah Semantik agar default ke pencocokan substring. (I08214) - Menambahkan
FollowBehavior.ExponentialDecay()terbatas yang memberikan perilaku mengikuti lembut yang dipandu oleh fisika elastis. (I7449c, b/485639909, b/500493335)
Sebagian besar API akan terpengaruh oleh hal ini. Secara khusus, LocalSession CompositionLocal dan semua CompositionLocals yang bergantung pada LocalSession (misalnya LocalSpatialConfiguration, LocalSpatialCapabilities, dll.) kini akan diselesaikan ke null atau versi non-XR-nya sebelum Session diinisialisasi.
Setelah Session tersedia, rekomposisi akan dipicu dengan status yang benar. (I0cfa4, b/514712835, b/514712835)
- Dokumentasi yang diperjelas untuk
ComponentActivity.requestHomeSpacedanComponentActivity.requestFullSpaceterkait perilaku penangguhan, pembatalan, dan konkurensi. Memperbarui pengujian untuk memverifikasi propagasiCancellationException. (I22f75, b/493289528)
Versi 1.0.0-alpha15
17 Juni 2026
androidx.xr.compose:compose:1.0.0-alpha15 dan androidx.xr.compose:compose-testing:1.0.0-alpha15 dirilis. Versi 1.0.0-alpha15 berisi commit ini.
Perubahan API
ResizePolicydan pengubah lama yang dapat diubah ukurannya tidak digunakan lagi, dan diganti dengan penggantianSubspaceModifier.resizablebaru danSubspaceModifier.transformingResizable. (I9e4bc)- API
SpatialGltfModelyang diperbarui: Menambahkan dukungan untuk memuat model dari resource melaluiSpatialGltfModelSource.fromResource. Mengganti nama kecepatan menjadiplaybackSpeeddiSpatialGltfModelAnimationdan menambahkan metode resume().SpatialGltfModelStatus.Loaded dan Loading kini berupa objek. (I523de) - Menandai
rotateToLookAtUsersebagai API eksperimental. (I86c16) - Memindahkan dan mengganti nama variabel terlindungi
targetCurrentPosemenjadi variabel lokalcurrentTargetPoseMeter. (Ia557c) - Perbarui kdocs
SpatialPaneldanSpatialExternalSurfaceuntuk menyertakan tempat objek dirender dalam ukuran tata letaknya (I72104) - Mengenkapsulasi logika pemuatan
SpatialGltfModeldalamSpatialGltfModelStatedan mengklarifikasi perilaku kegagalan. (Ibe98b) - Memperjelas
depthdi kdocsSubspaceModifer.size(I0f84f)
Versi 1.0.0-alpha14
19 Mei 2026
androidx.xr.compose:compose:1.0.0-alpha14 dan androidx.xr.compose:compose-testing:1.0.0-alpha14 dirilis. Versi 1.0.0-alpha14 berisi commit ini.
Perubahan API
- Memperkenalkan
transformingMovableuntuk pergerakan 3D yang ditangani sistem secara default dan memperkenalkan penggantian fungsi baru untukmovableguna menangani perilaku pergerakan kustom. (I50960) SpatialGltfModel.fromData()telah dihapus. (I4d083)- Menambahkan antarmuka node pengubah baru,
SubspaceMeasuredSizeAwareModifierNode, yang menyediakan callbackonRemeasuredsetelah melewati pengukuran.SubspaceLayoutAwareModifierNodesekarang memperluas antarmuka baru ini. PengubahonSizeChangedtelah diupdate untuk menggunakanonRemeasured, sehingga memastikan callback dipicu tepat setelah pengukuran, bukan setelah penempatan. (Iafbae) - Memperbarui
InteractionPolicymenjadiInterface(I0ff30) - Memperbarui Compose
compileSdkke API 37. Artinya, versi AGP minimum 9.2.0 diperlukan saat menggunakan Compose. (Id45cd) - Memperbarui kdocs
Size(Iefa9a)
Versi 1.0.0-alpha13
6 Mei 2026
androidx.xr.compose:compose:1.0.0-alpha13 dan androidx.xr.compose:compose-testing:1.0.0-alpha13 dirilis. Versi 1.0.0-alpha13 berisi commit ini.
Perubahan API
- Orbiter API masih menunggu perubahan tambahan. Sebaiknya nonaktifkan pemberitahuan penghentian penggunaan untuk Orbiter dan perhatikan perubahan Orbiter dalam rilis mendatang.
- Pengguna yang menggunakan
SceneCoreEntityuntuk merender glTF harus memastikan bahwa mereka meneruskansession.scene.activitySpaceke parameterparentdari panggilanGltfModel.createuntuk memastikan glTF mereka akan dirender. - Menambahkan
SpatialGltfModelAPI untuk memungkinkan developer menambahkan Gltf ke aplikasi Compose For XR mereka. Developer juga dapat membuat kueri animasi dan node di dalam model Gltf mereka. (I8b542, b/495422586) - Mengubah
SceneCoreEntitySizeAdapterdari class menjadi antarmuka (I5a784, b/475292310) - Mengganti nama
SurfaceProtectionmenjadiSpatialExternalSurfaceProtection. Memperbarui kdocsSpatialExternalSurface(Ifad0a, b/485231082) - Menghentikan penggunaan
currentWindowAdaptiveInfodan memperkenalkan versi 2-nya (I40ecf, b/424442112) - Pengubah
resizablekini bersifat publik dan berlaku untuk grup (misalnya,SpatialRow). (I2bcf6, b/348483527, b/489753178, b/479530787) - Pengubah
movablekini bersifat publik. Pengubah ini berfungsi dengan baik, saat ini, untukSpatialPanelsdanSpatialExternalSurface; namun, tujuannya adalah agar pengubah ini didukung dengan baik untuk semuaSubspaceComposables. (I9a3cd, b/479530787, b/478935063, b/478935063) SpatialEnterTransitiondanSpatialExitTransitionditandai sebagai@Immutable(If1710, b/487757837)- API
SpatialGltfModelditandai sebagai dibatasi untuk rilis ini sambil menunggu pengujian tambahan. (Ibf003, b/466090694) - Mengganti nama
DeviceTrackingMode.LAST_KNOWNmenjadiSPATIAL_LAST_KNOWN(dengan penggantian yang tidak digunakan lagi), menambahkanINERTIAL_LAST_KNOWNuntuk pelacakan 3DoF, dan menambahkanTRACKING_DEGRADEDkeTrackingState. (Ie661c, b/445466590) - Menghapus
SpatialLayoutSpaceryang tidak digunakan lagi (I7b36c) - Menghapus API padding yang tidak digunakan lagi (If1886)
- Menambahkan
floatRangeke nilai bias. Menghapus nilai default untukLayoutDirection(I9d74e)
Perbaikan Bug
- Menambahkan contoh kode dan dokumentasi KDoc untuk
SpatialColumn,SpatialRow, danSpatialCurvedRow. (Iaf54f, b/495777633)
Versi 1.0.0-alpha12
25 Maret 2025
androidx.xr.compose:compose:1.0.0-alpha12 dan androidx.xr.compose:compose-testing:1.0.0-alpha12 dirilis. Versi 1.0.0-alpha12 berisi commit ini.
Perubahan API
- Tambahkan API
SpatialGltfModeldan APISpatialGltfModelAnimationuntuk merender glTF dan mengontrol animasi. MengubahSpatialGltfModelStatemenjadiAutoCloseable, yang kini harus ditutup untuk membebaskan resource-nya. (I11fde, b/466065486, b/481379924). Namun,SpatialGltfModelAPI ditandai sebagai dibatasi untuk rilis ini sambil menunggu pengujian tambahan. (Ibf003, b/466090694) - Menambahkan overload kosong yang tidak digunakan lagi untuk
SubspaceModifier.rotate. (Idceb6) - Mengganti nama fungsi
SpatialSmoothFeatheringEffectmenjadispatialSmoothFeatheringEffectdan memindahkannya ke modul gambar. Memperbarui nilai feathering defaultSpatialExternalSurfacemenjadi null, yang meniru fungsi ZeroFeatheringEffect lama. (I5fdaa, b/460426800) onPointSourceParamsAvailabledihapus. API spasialisasi audio yang berbeda akan tersedia dalam waktu dekat. (I86507, b/458513439)- Menambahkan perilaku RTL untuk pengubah subruang offset. Menambahkan
absoluteOffsetuntuk mengabaikan arah tata letak. (I30e4b, b/474409165)
Versi 1.0.0-alpha11
25 Februari 2026
androidx.xr.compose:compose:1.0.0-alpha11 dan androidx.xr.compose:compose-testing:1.0.0-alpha11 dirilis. Versi 1.0.0-alpha11 berisi commit ini.
Fitur Baru
- Menambahkan parameter
SuperSamplingkeSpatialExternalSurfaces(Icd4d1)
Masalah Umum
- Masalah pada
SurfaceEntitydi SceneCore dapat menyebabkan aplikasi error saat membuat instanceSpatialExternalSurface. Masalah ini telah diselesaikan diandroidx.xr.scenecore:scenecore-*:1.0.0-alpha13,androidx.xr.compose:compose:1.0.0-alpha12, dan rilis berikutnya. Aplikasi yang terpengaruh harus diupdate ke versi terbaru.
Perubahan API
- Perubahan padding pengubah subruang untuk mengetahui arah tata letak. (I53e25)
SpatialCapabilitieskini sudah final dan tidak dapat diperpanjang. (I07aef)- API
SpatialRowdanSpatialColumnyang menerima parameterSpatialAlignmentgenerik tidak digunakan lagi. Sebagai gantinya, gunakan API yang menerimaverticalAlignmentatauhorizontalAlignmentuntukSpatialRowdanSpatialColumn. (Iec390) - Menggabungkan API fungsi
SubspaceLayoutyang kelebihan beban (Idd30a) - Mengganti nama
SubspaceModifier.lookAtUsermenjadirotateToLookAtUserdan parameterupmenjadiupDirection. (Icafb8) - Membuat
SpatialRowmenjadi fungsi inline (Ia2f20) - Membuat
SpatialColumnmenjadi fungsi inline (I681be) - Menghapus API papan iklan (Ib76cd)
Versi 1.0.0-alpha10
28 Januari 2026
androidx.xr.compose:compose:1.0.0-alpha10 dan androidx.xr.compose:compose-testing:1.0.0-alpha10 dirilis. Versi 1.0.0-alpha10 berisi commit ini.
Perubahan API
- Menghapus API yang tidak digunakan lagi -
ApplicationSubspace(Ia6596, b/468345186) - Mengupdate
SpatialShapeke antarmuka tertutup (I7e3f5, b/460426800) - Menghapus API yang Tidak Digunakan Lagi di
SpatialAlignment. (Ib0b61, b/468011887) - Menghentikan penggunaan
SpatialLayoutSpacerdan memperkenalkanSpatialSpacer. (I2ebf3, b/466071383) - Memperbarui API
UserSubspaceuntuk mengganti terminologi "penguncian lambat" dengan "penguncian ringan". (I9ded1, b/464035984)
Versi 1.0.0-alpha09
3 Desember 2025
androidx.xr.compose:compose:1.0.0-alpha09 dan androidx.xr.compose:compose-testing:1.0.0-alpha09 dirilis. Versi 1.0.0-alpha09 berisi commit ini.
Perubahan API
- Menambahkan pengubah
LookAtUserdan Billboard yang memungkinkan konten selalu menghadap pengguna. (I49b99) - Menambahkan kemampuan untuk menyetel
InteractionPolicykeSpatialExternalSurfacesdanSpatialPanels, sehingga memungkinkan deteksi klik dan peristiwa input 3D lainnya. (Iae155) - Menambahkan overload pengubah ukuran dan
requiredSizedengan lebar, tinggi, dan kedalaman sebagai nilai Dp. (I92f79) - Antarmuka
ParentLayoutParamsModifiersekarang memperluasDelegatableSubspaceNode. (I1a6d4) ApplicationSubspacetidak digunakan lagi dan digantikan dengan Subspace API.- Perilaku Subspace API diubah untuk hanya menyediakan subspace di seluruh aplikasi pada pose dan skala yang direkomendasikan.
- API
PlanarEmbeddedSubspacediperkenalkan untuk menyediakan subruang sematan dalam konteks 2D. (Id3343)
- Menambahkan tanda
shouldAutoInvalidatekeSubspaceModifier.NodeAPI. (I93902) - Menambahkan
required(Size|Width|Depth|Height)In API yang memungkinkan developer membatasi ukuran@SubspaceComposableke rentang tertentu, tanpa memperhatikan batasan pengukuran masuk induk. (Ifaa78) - Menambahkan
SubspaceModifier.onSizeChangedyang menyediakan callback sederhana dan terfokus bagi developer untuk bereaksi saat ukuran@SubspaceComposableberubah. (I994f9) - Menghapus Volume API.
SceneCoreEntityAPI harus digunakan, bukan Volume API. (I4162b) - Pisahkan
SubspaceLayoutModifierNode.requestRelayoutmenjadiinvalidateMeasurement/invalidatePlacement. (I14805) - Menambahkan
SpatialGltfModelAPI yang memungkinkan developer merender glTF di compose. (Icc91f) - Memperkenalkan API composable
SpatialGltfModeluntuk merender glTF dengan mudah (Iade67)
Perbaikan Bug
- Memperbaiki bug tata letak di
SceneCoreEntity. Sekarang, komponen tersebut akan mematuhi batasannya dengan benar. (I11bb8) - Menurunkan modul jxr-compose ke
Compile sdk = 34(I2d5db)
Versi 1.0.0-alpha08
22 Oktober 2025
androidx.xr.compose:compose:1.0.0-alpha08 dan androidx.xr.compose:compose-testing:1.0.0-alpha08 dirilis. Versi 1.0.0-alpha08 berisi commit ini.
Perubahan API
- Mengubah
ResizePolicyuntuk menerimaonResizeStart,onResizeUpdate, danonResizeEnd. (I7e21f)
Perbaikan Bug
- Mencegah error saat menghancurkan Aktivitas dengan Subspace. (I595a1)
Versi 1.0.0-alpha07
24 September 2025
androidx.xr.compose:compose:1.0.0-alpha07 dan androidx.xr.compose:compose-testing:1.0.0-alpha07 dirilis. Versi 1.0.0-alpha07 berisi commit ini.
Perubahan API
- KDocs yang ditingkatkan untuk
SpatialMainPanel. (I27b70, b/444467891) - Memperkenalkan
SpatialArrangementuntuk mengatur turunan di sepanjang sumbu utama dalam tata letak 3D sepertiSpatialRowdanSpatialColumn. API baru ini menyediakan opsi penataan yang sudah dikenal dari Compose 2D, termasukStart,End,Center,SpaceBetween,SpaceAround, danSpaceEvenly, dengan dukungan penuh untuk arah tata letak LTR dan RTL. (I7db38, b/436289959) - Menambahkan antarmuka dasar untuk
SubspaceModifier.Nodeguna meningkatkan keamanan jenis dan kegunaan antarmuka ekstensi; sepertiCompositionLocalConsumerSubspaceModifierNodeLayoutCoordinatesAwareModifierNodeSubspaceLayoutModifierNodeCoreEntityNode(internal) (Iede00, b/440599394, b/440599394)
- Buka batasan
SpatialExternalSurface(I33315, b/439646773) - Memperkenalkan
SubspaceModifierke composable Subspace dan mengganti parameter batasan denganSubspaceModifierdenganSubspaceModifiersterkait ukuran. JikaallowUnboundedSubspacebenar, Subruang masih dapat memiliki batasan yang tidak terikat. (Ib06e6, b/433331675) - Menghentikan penggunaan
SubspaceModifiersyang dapat dipindahkan dan diubah ukurannya karenaDragPolicy()danResizePolicy()kini menjadi bagian dariSpatialPaneldanSpatialExternalSurfaceAPI (I397bf, b/437924639) - Menambahkan dukungan untuk
LayoutDirectiondalam tata letak spasial. Composable yang menggunakanSpatialAlignmentkini akan memosisikan elemen dengan benar dalam konteks LTR dan RTL. (I964bb, b/436300273) - Tambahkan parameter Dapat Diubah Ukuran dan Dapat Dipindahkan ke API
Paneluntuk memastikan bahwa perilaku ini hanya dapat diterapkan ke penampung yang didukung. (Id491c) - Menambahkan
sizeIn,widthIn,heightIn,depthInSubspaceModifiersyang memungkinkan Anda menetapkan batasan minimum dan maksimum yang tepat untuk lebar, tinggi, dan kedalaman. (I1af09, b/433330761)
Versi 1.0.0-alpha06
13 Agustus 2025
androidx.xr.compose:compose:1.0.0-alpha06 dan androidx.xr.compose:compose-testing:1.0.0-alpha06 dirilis. Versi 1.0.0-alpha06 berisi commit ini.
Perbaikan Bug
- Buat ulang
ComposeXrOwnerLocalssaat pemilik siklus proses dihancurkan. (9123ce1)
Versi 1.0.0-alpha05
30 Juli 2025
androidx.xr.compose:compose:1.0.0-alpha05 dan androidx.xr.compose:compose-testing:1.0.0-alpha05 dirilis. Versi 1.0.0-alpha05 berisi commit ini.
Fitur Baru
- Perubahan class anotasi
SubspaceComposablemenjadi publik. (Ic2a34, b/399432430) - Dua Composable
SpatialExternalSurfacebaru yang merepresentasikan bola 180 dan 360 derajat. (I40ef2, b/391705799) - Menambahkan
SubspaceModifier.aspectRatio(Ide5ab, b/399729509, b/414762147) - Menambahkan API
SceneCoreEntityuntuk meningkatkan interoperabilitas antaraSceneCoredan Compose untuk XR. (I50bb3, b/423020989) - Menyediakan API
GravityAlignedsubspaceuntuk mendukung fiturGravityAligneddan tidak diskalakan (I07359)
Perubahan API
SpatialDialog()akan mengikuti konfigurasi penekananSpatialDialogProperties.dismissOnBack. (Ib453b, b/416797132)- Perbarui
minimumPanelDimensionke Ukuran dimensi default baruDimensions(0.1f, 0.1f, 0.1f)karena representasinya dalam Meter. (Ib852a) - Subruang dan Pengorbit kini akan mempertahankan status internalnya di ruang rumah dan saat aplikasi berada di latar belakang. Dalam mode ruang utama, Subspace akan tetap menyiapkan adegannya untuk persiapan peralihan ke mode ruang penuh. (I40317, b/416037751)
SpatialDialogskini akan mempertahankan statusnya saat aplikasi berada di latar belakang. (I6aa56)ApplicationSubspacekini akan mewarisi skala dan posisi yang direkomendasikan dari sistem. (I4565f, b/418834194)- Menambahkan pesan error yang lebih baik dan memicu error lebih awal saat
SubspaceComposabledigunakan dalam konteks non-SubspaceComposable. (Iee2ae, b/416484684) - Memperbarui
ExperimentalSubspaceVolumeApidari Peringatan menjadi Error karena peringatan sering diabaikan saat menyalahgunakan API composable. (I427aa, b/424864286) - Subruang dan
ApplicationSubspacekini dibatasi olehrecommendedContentBoxInFullSpace. Sebelumnya, tampilan dibatasi oleh Bidang PandangSpatialUser. (I41015, b/423074142) - Memperbarui
SpatialElevationuntuk menggunakan ukuran minimum agar tidak lagi menggunakan ukuran yang dikodekan secara permanen (I2dbe6, b/427785338) - Perbarui cara kita membuat layar redup
SpatialAcitivityPaneluntuk diperbarui saat variabel utama diubah. (I0f64d, b/427999029) - Hapus
VolumeConstraints.Unboundeddan tetapkan nilai batasan default ke nilai yang setara. (Ie24ec, b/407938414) SpatialFeatheringSizetidak lagi bersifat publik (I1c15b, b/399432430)- Mengganti nama
PlaceableXR menjadiSubspacePlaceableuntuk membedakannya dariPlaceableCompose. (I74874) - Menghapus setelan Orbiter dan menambahkan
shouldRenderInNonSpatialsebagai parameter baru. Selain itu, menghapus classEdgeOffsetdan menambahkanorbiterOffsetTypesebagai parameter baru untuk menggabungkan FungsiOrbiter(). Selain mengganti namaOrbiterEdgemenjadiContentEdge. (Iebf3d) - Mengganti nama
MeasurablemenjadiSubspaceMeasurableuntuk membedakan jenis dari jenisMeasurableCompose. (I9726c) - Mengganti nama
MeasureResultmenjadiSubspaceMeasureResult(I9f34d) - Menghapus
setSubspaceContentAPI untuk menggunakansetContentCompose dengan composableSubspace. (Ifff4c, b/421427391, b/421427391) MeasurePolicydiganti namanya menjadiSubspaceMeasurePolicy. (I37a9b, b/422553904)- Ubah
SubspaceSemanticsInfomenjadi antarmuka tertutup karena kita tidak akan dapat menambahkan anggota tanpa nilai default. (I372f9, b/423704068) - Memperbarui dokumentasi
SpatialExternalSurface, mengganti namaContentSecurityLevelmenjadiSurfaceProtection(I3c460, b/420982808) - Menyediakan konstruktor kelebihan muatan untuk pengubah yang dapat dipindahkan yang memungkinkan penambatan. (Ic0c70)
- Menambahkan lebih banyak penyedia posisi untuk tooltip sehingga kini developer dapat mengontrol apakah tooltip ditempatkan di atas, bawah, kiri, atau kanan anchor. Tambahkan API yang menerima Bentuk untuk penanda, sehingga lebih banyak bentuk kustom dapat diberikan. (Ie513c, b/374766087, b/418854637)
CoreEntitydihapus sebagaiPublishedApi(Ifee05)
Perbaikan Bug
- Memperbaiki masalah saat
SpatialDialogberkedip saat dirender. (Ife73c, b/401619909) - Memperbaiki masalah saat
SpatialDialogtidak dapat membuat layar redup Panel Aktivitas. (I8ca6c, b/367442109) - Memperbaiki dialog XR yang tidak menampilkan beberapa konten (I17cd5, b/418062437)
- Memperbaiki masalah saat
SpatialPopupditutup saat diklik di dalam konten. (If262c, b/417245722) - Memperbaiki masalah saat merangkai
resizable().movable(), SpatialPanel gagal mengubah ukuran dengan benar ke ukuran baru. (I02ee3, b/422264230) - Memperbaiki
topBaryang tumpang-tindih dengan menu diSpatialComposeVideoPlayer(Id33bc, b/427168167) - Memperbaiki radius sudut yang tidak dirender (I975fe, b/428261830)
Versi 1.0.0-alpha04
7 Mei 2025
androidx.xr.compose:compose:1.0.0-alpha04 dan androidx.xr.compose:compose-testing:1.0.0-alpha04 dirilis. Versi 1.0.0-alpha04 berisi commit ini.
Fitur Baru
- Menambahkan antarmuka
CompositionLocalConsumerSubspaceModifierNodeuntuk memungkinkan jenisSubspaceModifierkustom mengakses nilai lokal komposisi. - Menambahkan
SpatialPanelAPI baru yang mengikuti gaya penerapanAndroidViewcompose dan menghentikan penggunaanViewBased SpatialPanelsebelumnya. - Menambahkan objek pendamping
VolumeConstraints.Unboundedyang merepresentasikan batasan tidak terbatas. - Menambahkan
SubspaceModifier.onPointSourceParamsuntuk mengizinkan sumber audio spasial. ApplicationSubspacepublik telah ditambahkan, yang menawarkanVolumeConstraintsopsional untuk menentukan area 3D tempat aplikasi dapat merender konten spasial. Secara default, jika tidak ada batasan yang ditentukan, Subspace akan dibatasi oleh bidang pandangSpatialUsersaat ini dalam lebar dan tinggi. Pengguna dapat memberikan batasan yang akan digunakan jika bidang pandang tidak dapat ditentukan. Jika tidak, nilai lebar dan tinggi bidang pandang default akan digunakan.- Menambahkan
SpatialExternalSurface, yang dapat digunakan untuk merender konten stereoskopik.SpatialExternalSurfacedapat disesuaikan dengan pengubah (kecuali alfa), dan efek feathering tepi. - Menambahkan Pengubah Subruang
pointerHoverIconbaru yang memungkinkan pengguna menetapkan ikon untuk penunjuk spasial.
Perubahan API
- Menghapus batasan
RequiresApi(34)pada semua paket Jetpack XR. Pembatasan ini berlebihan karena Jetpack XR saat ini hanya tersedia di perangkat dengan level API 34+. (Iae0f8) - Project yang dirilis dengan Kotlin 2.0 memerlukan KGP 2.0.0 atau yang lebih baru untuk digunakan. (Idb6b5)
- Penanganan kembali kini akan berfungsi di panel spasial tanpa aktivitas tersemat. Agar penanganan kembali berfungsi, Anda harus menentukan
android:enableOnBackInvokedCallback="true"dalam manifes Android. - Penanganan kembali kini akan berfungsi pada dialog spasial. Agar penanganan kembali berfungsi, Anda harus menentukan
android:enableOnBackInvokedCallback="true"dalam manifes Android. SpatialPanelberbasis Compose dan berbasis View kini dapat menyesuaikan ukuran berdasarkan kontennya.- Developer kini dapat menetapkan nilai
SpatialElevationLevelkustom mereka sendiri dan tidak terbatas pada tingkat yang telah ditentukan sebelumnya. - Tingkat elevasi pengorbit kini dapat disesuaikan melalui parameter
elevation. - Subruang kini dapat dibatasi oleh bidang pandang
SpatialUserdalam lebar dan tinggi secara default. Jika bidang pandang tidak dapat ditentukan, nilai lebar dan tinggi bidang pandang default akan digunakan. - Menambahkan callback baru
onMoveStartdanonMoveEndke pengubahMovable. CallbackonMoveStartdanonMoveEnddipanggil saat pengguna mulai dan mengakhiri pemindahan composable subruang dengan pengubah yang dapat dipindahkan. - Parameter
nametelah dihapus dari API spasial sepertiSpatialRowdanSpatialPanel. Untuk men-debug hierarki komposisi spasial, gunakanSubspaceModifier.testTag. - Menghapus kelebihan beban
SpatialPopupyang tidak didukung dan hanya memilikispatialElevationLeveldancontent. Gunakan antarmuka yang mendukungonDimissRequest. - Callback
onPoseChangedari pengubah Movable telah dihapus. Sebagai gantinya, gunakanonMove. SubspaceModifierstidak akan lagi menerapkan efeknya jika dilepas atau sedang dilepas.SpatialRowAPI yang ada telah dibagi menjadiSpatialRowdanSpatialCurvedRow. Jika sebelumnya menggunakan parametercurveRadiusSpatialRow, gunakanSpatialCurvedRowsekarang yang menawarkan perilaku yang sama.MainPaneldanActivityPaneltidak lagi memiliki kolom judul saat dijalankan pada image sistem yang sama-sama baru.- Pengubah alfa dan skala kini dapat ditumpuk dan akan mengalikan nilainya untuk nilai alfa atau skala akhir yang diterapkan.
- Callback
onPoseChangedari pengubah Movable telah dioptimalkan untuk melakukan gerakan pose yang lebih lancar. - Pengubah yang dapat dipindahkan dan diubah ukurannya kini akan melakukan callback pada thread utama untuk memastikan bahwa perubahan status akan memicu rekomposisi.
- Menambahkan pengamatan status ke fase tata letak dan pengukuran untuk memastikan bahwa perubahan status di
SubspaceLayoutakan memicu tata ulang. - Memperbarui rantai pengubah yang dioptimalkan untuk menggunakan kembali pengubah yang ada dengan lebih baik.
Perbaikan Bug
- Menghentikan scrim saat
SpatialDialogditampilkan. (Ic4594) - Permintaan tata ulang yang dibuat saat node pengubah dilepas kini akan diabaikan.
- Menghapus fase tata ulang yang dipicu oleh pengubah Movable dan Resizable.
- Memperbaiki error pada composable
MainPanel()yang terjadi saat salah satu dimensi disetel ke nol, baik secara langsung maupun selama penghitungan tata letak, misalnya, penghitunganSpatialRow/SpatialColumn. Panel akan disembunyikan. Perhatikan bahwa perbaikan ini secara khusus mengatasi error selama fase tata letak; pengubahan ukuran panel menjadi nol melalui interaksi pengguna akan ditangani secara terpisah. Panel tersembunyi tidak memiliki kemampuan UI. - Memperbaiki masalah pada
maintainAspectRatiodari pengubah yang dapat diubah ukurannya. Rasio aspek akan dipertahankan sekarang. - Memperbaiki masalah dengan Subruang bersarang yang akan diposisikan secara salah untuk satu frame.
- Memperbaiki masalah saat sudut bulat terkadang tidak diterapkan saat seharusnya diterapkan.
NestedSubspacestidak akan lagi muncul untuk satu frame di lokasi yang salah.
Versi 1.0.0-alpha03
26 Februari 2025
androidx.xr.compose:compose:1.0.0-alpha03 dan androidx.xr.compose:compose-testing:1.0.0-alpha03 dirilis tanpa perubahan penting sejak versi alfa terakhir. Versi 1.0.0-alpha03 berisi commit ini
Versi 1.0.0-alpha02
12 Februari 2025
androidx.xr.compose:compose:1.0.0-alpha02 dan androidx.xr.compose:compose-testing:1.0.0-alpha02 dirilis. Versi 1.0.0-alpha02 berisi commit ini.
Fitur Baru
- Panel Aktivitas kini dapat mengaburkan kontennya saat Dialog Spasial diaktifkan.
- API
Orbiterkini dapat digunakan dalam konteksSubspaceComposabledan akan melampirkan Pengorbit ke induk composable berbasisSubspaceLayoutterdekat. - Memperkenalkan
LayoutCoordinatesAwareModifierNodeuntuk memungkinkan pengubah berbasis penempatan kustom. - Menambahkan metode siklus proses pelekatan/pelepasan ke
SubspaceModifier.Node. - Menambahkan
scaleWithDistanceke pengubah yang dapat dipindahkan. JikascaleWithDistancediaktifkan, elemen subruang yang dipindahkan akan bertambah besar atau kecil. Skala eksplisit yang dimilikinya sebelum bergerak juga akan dipertahankan.
Perubahan API
- Menghapus
SessionCallbackProviderdan menggantinya denganSpatialCapabilities.
Perubahan lain
- Mengurangi
minSDKmenjadi 24. Semua Jetpack XR API terus memerlukan API 34 saat runtime. - Konstruktor
OrbiterEdgeOffset.inner,EdgeOffset.outer, danEdgeOffset.overlaptidak lagi menjadi metode@Composable, sehingga dapat digunakan dalam konteks non-composable. - Perbarui Tingkat Ketinggian Spasial agar sesuai dengan spesifikasi UX terbaru.
- Terapkan antarmuka
SubspaceSemanticsInfokeMeasurableLayout. - Mengganti nama
SubspaceModifierElementmenjadiSubspaceModifierNodeElement.
Perbaikan bug
- Perbaikan untuk menstabilkan pemesanan
SubspaceModifier.SubspaceModifierakan berperilaku lebih andal. Pengubah offset, putar, skala, dapat dipindahkan, dan dapat diubah ukurannya kini dapat digunakan dalam urutan apa pun.
Versi 1.0.0-alpha01
12 Desember 2024
androidx.xr.compose:compose-*1.0.0-alpha01 dirilis.
Fitur Rilis Awal
Rilis developer awal Jetpack Compose untuk XR. Gunakan konsep Compose yang sudah dikenal seperti baris dan kolom untuk membuat tata letak UI spasial di XR, baik Anda mem-porting aplikasi 2D yang ada ke XR atau membuat aplikasi XR baru dari awal. Library ini menyediakan composable subspasial dan spasial: seperti panel spasial dan pengorbit, yang memungkinkan Anda menempatkan UI berbasis Compose 2D atau View yang ada dalam tata letak spasial. Composable ini memperkenalkan Volume subspace, yang memungkinkan Anda menempatkan entity SceneCore, seperti model 3D, relatif terhadap UI Anda. Pelajari lebih lanjut dalam panduan developer ini:
Subspace: Composable ini dapat ditempatkan di mana saja dalam hierarki UI aplikasi Anda, sehingga Anda dapat mempertahankan tata letak untuk UI 2D dan spasial tanpa kehilangan konteks antar-file. Hal ini mempermudah berbagi hal-hal seperti arsitektur aplikasi yang ada antara XR dan faktor bentuk lainnya tanpa perlu mengangkat status melalui seluruh hierarki UI atau merancang ulang aplikasi.SpatialPanel: Panel spasial adalah composable subruang yang memungkinkan Anda menampilkan konten aplikasi. Misalnya, Anda dapat menampilkan pemutaran video, gambar diam, atau konten lainnya di panel spasial.
Orbiter: Orbiter adalah komponen UI spasial. Panel ini dirancang untuk dilampirkan ke panel spasial yang sesuai, dan berisi item tindakan kontekstual dan navigasi yang terkait dengan panel spasial tersebut. Misalnya, jika Anda telah membuat panel spasial untuk menampilkan konten video, Anda dapat menambahkan kontrol pemutaran video di dalam pengorbit.
Volume: Tempatkan entity SceneCore, seperti model 3D, relatif terhadap UI Anda.
Tata Letak Spasial: Anda dapat membuat beberapa panel spasial dan menempatkannya dalam Tata Letak Spasial menggunakan
SpatialRow,SpatialColumn,SpatialBox, danSpatialLayoutSpacer. GunakanSubspaceModifiers untuk menyesuaikan tata letak Anda.Komponen UI spasial: Elemen ini dapat digunakan kembali di UI 2D Anda, dan atribut spasialnya hanya akan terlihat saat kemampuan spasial diaktifkan.
SpatialDialog: Panel akan sedikit didorong kembali dalam kedalaman z untuk menampilkan dialog yang ditinggikan.SpatialPopUp: Panel akan sedikit mundur dalam kedalaman z untuk menampilkan pop-up yang lebih tinggiSpatialElevation:SpatialElevationLeveldapat ditetapkan untuk menambahkan elevasi.
SpatialCapabilities: Kemampuan spasial dapat berubah saat pengguna berinteraksi dengan aplikasi atau sistem Anda, atau bahkan dapat diubah oleh aplikasi Anda sendiri—misalnya, berpindah ke Ruang Utama atau Ruang Penuh. Untuk menghindari masalah, aplikasi Anda perlu memeriksa
LocalSpatialCapabilities.currentuntuk menentukan API mana yang didukung di lingkungan saat ini.isSpatialUiEnabled: Elemen UI spasial (misalnya SpatialPanel)isContent3dEnabled: Objek 3DisAppEnvironmentEnabled: LingkunganisPassthroughControlEnabled: Apakah aplikasi dapat mengontrol status penerusan atau tidakisSpatialAudioEnabled: Audio spasial
Masalah Umum
- Saat ini, minSDK 30 diperlukan untuk menggunakan Jetpack Compose untuk XR. Sebagai solusinya, Anda dapat menambahkan entri manifes
<uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>berikut agar dapat mem-build dan menjalankan dengan minSDK 23. - Aplikasi Jetpack XR saat ini memerlukan permintaan izin
android.permission.SCENE_UNDERSTANDINGdi AndroidManifest. - Saat aplikasi diluncurkan langsung ke Ruang Penuh menggunakan properti
PROPERTY_XR_ACTIVITY_START_MODEdalam manifesnya, Aktivitas/Aplikasi awalnya dibuka di Ruang Utama sebelum bertransisi ke Ruang Penuh. - glTF di Volume Composables awalnya dapat berkedip di lokasi yang salah.
- Menggunakan SpatialDialog di panel yang telah dipindahkan secara signifikan akan mendorong konten ke arah yang salah.