XR için Jetpack Compose
| Son Güncelleme | Kararlı Sürüm | Sürüm Adayı | Beta Sürümü | Alfa Sürümü |
|---|---|---|---|---|
| 3 Aralık 2025 | - | - | - | 1.0.0-alpha09 |
Bağımlılıkları bildirme
XR Compose'a bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.
Uygulamanız veya modülünüz için build.gradle dosyasına ihtiyacınız olan yapılarla ilgili bağımlılıkları ekleyin:
Eski
dependencies { implementation "androidx.xr.compose:compose:1.0.0-alpha09" // Use to write unit tests testImplementation "androidx.xr.compose:compose-testing:1.0.0-alpha09" }
Kotlin
dependencies { implementation("androidx.xr.compose:compose:1.0.0-alpha09") // Use to write unit tests testImplementation("androidx.xr.compose:compose-testing:1.0.0-alpha09") }
Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme başlıklı makaleyi inceleyin.
Geri bildirim
Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz olursa lütfen bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerini inceleyin.
Sürüm 1.0
Sürüm 1.0.0-alpha09
3 Aralık 2025
androidx.xr.compose:compose:1.0.0-alpha09 ve androidx.xr.compose:compose-testing:1.0.0-alpha09 yayınlandı. 1.0.0-alpha09 sürümü bu commit'leri içerir.
API Değişiklikleri
- İçeriğin her zaman kullanıcıya dönük olmasını sağlayan
LookAtUserve Billboard değiştiricilerini ekleme (I49b99) - Tıklamaların ve diğer 3D giriş etkinliklerinin algılanmasına olanak tanıyan
InteractionPolicyileSpatialExternalSurfacesveSpatialPanelsarasında birInteractionPolicyayarlama özelliği ekler. (Iae155) - Dp değerleri olarak genişlik, yükseklik ve derinlik ile boyut ve
requiredSizedeğiştirici aşırı yüklemesi eklendi. (I92f79) ParentLayoutParamsModifierarayüzü artıkDelegatableSubspaceNode. (I1a6d4)ApplicationSubspace, Subspace API lehine kullanımdan kaldırıldı.- Subspace API davranışı, yalnızca önerilen duruş ve ölçekte uygulama genelinde bir alt alan sağlayacak şekilde değiştirildi.
PlanarEmbeddedSubspaceAPI, 2D bağlamlarda yerleştirilmiş alt uzaylar sağlamak için kullanıma sunulmuştur. (Id3343)
SubspaceModifier.NodeAPI'sineshouldAutoInvalidateişareti eklendi. (I93902)required(Size|Width|Depth|Height)Geliştiricilerin, üst öğenin gelen ölçüm kısıtlamalarını dikkate almadan bir@SubspaceComposableboyutunu belirli bir aralıkla sınırlamasına olanak tanıyan API'ler eklendi. (Ifaa78)@SubspaceComposableboyutunun değiştiğinde geliştiricilerin tepki vermesi için basit ve odaklanmış bir geri çağırma sağlayanSubspaceModifier.onSizeChangedeklendi. (I994f9)- Volume API kaldırıldı. Volume API yerine
SceneCoreEntityAPI kullanılmalıdır. (I4162b) SubspaceLayoutModifierNode.requestRelayoutöğesiniinvalidateMeasurement/invalidatePlacementolarak ayırın. (I14805)- Geliştiricilerin glTF'leri Compose'da oluşturmasına olanak tanıyan
SpatialGltfModelAPI'si eklendi. (Icc91f) - glTF'leri kolayca oluşturmak için
SpatialGltfModelcomposable API'si kullanıma sunuldu (Iade67).
Hata Düzeltmeleri
SceneCoreEntityuygulamasındaki düzen hatası düzeltildi. Artık kısıtlamalarına uygun şekilde yanıt verecektir. (I11bb8)- Jxr-compose modüllerini
Compile sdk = 34'ye düşürün (I2d5db)
Sürüm 1.0.0-alpha08
22 Ekim 2025
androidx.xr.compose:compose:1.0.0-alpha08 ve androidx.xr.compose:compose-testing:1.0.0-alpha08 yayınlandı. 1.0.0-alpha08 sürümü bu commit'leri içerir.
API Değişiklikleri
ResizePolicy,onResizeUpdateveonResizeEnd'ü kabul etmek içinonResizeStartolarak değiştirildi. (I7e21f)
Hata Düzeltmeleri
- Bir etkinliği alt alanla yok ederken kilitlenmeyi önleme. (I595a1)
Sürüm 1.0.0-alpha07
24 Eylül 2025
androidx.xr.compose:compose:1.0.0-alpha07 ve androidx.xr.compose:compose-testing:1.0.0-alpha07 yayınlandı. 1.0.0-alpha07 sürümü bu commit'leri içerir.
API Değişiklikleri
SpatialMainPaneliçin KDocs iyileştirildi. (I27b70, b/444467891)SpatialRowveSpatialColumngibi 3D düzenlerde çocukları ana eksen boyunca düzenlemek içinSpatialArrangementözelliği kullanıma sunuldu. Bu yeni API, 2D Compose'dakiStart,End,Center,SpaceBetween,SpaceAroundveSpaceEvenlygibi düzenleme seçeneklerini sunar. Ayrıca, soldan sağa ve sağdan sola düzen yönleri için tam destek sağlar. (I7db38, b/436289959)SubspaceModifier.Nodeiçin temel bir arayüz eklendi. Böylece, tür güvenliği ve uzantı arayüzlerinin kullanılabilirliği iyileştirildi. Örneğin:CompositionLocalConsumerSubspaceModifierNodeLayoutCoordinatesAwareModifierNodeSubspaceLayoutModifierNodeCoreEntityNode(şirket içi) (Iede00, b/440599394, b/440599394)
- Kısıtlamayı kaldırma
SpatialExternalSurface(I33315, b/439646773) - Subspace composable'larına
SubspaceModifierparametresini ekleyin ve kısıtlamalar parametresini boyutla ilgiliSubspaceModifiersile değiştirin.SubspaceModifierallowUnboundedSubspacedoğruysa alt alanlarda sınırsız kısıtlamalar olabilir. (Ib06e6, b/433331675) DragPolicy()veResizePolicy(),SpatialPanelveSpatialExternalSurfaceAPI'sinin (I397bf, b/437924639) bir parçası olduğundan taşınabilir ve yeniden boyutlandırılabilirSubspaceModifiersdesteği sonlandırıldı.- Uzamsal düzenlerde
LayoutDirectioniçin destek eklendi.SpatialAlignmentkullanılarak oluşturulan composable'lar artık öğeleri hem soldan sağa (LTR) hem de sağdan sola (RTL) bağlamlarda doğru şekilde konumlandıracak. (I964bb, b/436300273) - Bu davranışların yalnızca desteklenen kapsayıcılara uygulanabilmesini sağlamak için
PanelAPI'lerine Resizable ve Movable parametrelerini ekleyin. (Id491c) - Genişlik, yükseklik ve derinlik için tam minimum ve maksimum kısıtlamalar belirlemenize olanak tanıyan
sizeIn,widthIn,heightIn,depthInSubspaceModifiersözellikleri eklendi. (I1af09, b/433330761)
Sürüm 1.0.0-alpha06
13 Ağustos 2025
androidx.xr.compose:compose:1.0.0-alpha06 ve androidx.xr.compose:compose-testing:1.0.0-alpha06 yayınlandı. 1.0.0-alpha06 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Yaşam döngüsü sahibi yok edildiğinde
ComposeXrOwnerLocalsöğesini yeniden oluşturun. (9123ce1)
Sürüm 1.0.0-alpha05
30 Temmuz 2025
androidx.xr.compose:compose:1.0.0-alpha05 ve androidx.xr.compose:compose-testing:1.0.0-alpha05 yayınlandı. 1.0.0-alpha05 sürümü bu commit'leri içerir.
Yeni Özellikler
SubspaceComposableek açıklama sınıfını herkese açık hale getirdi. (Ic2a34, b/399432430)- 180 ve 360 derecelik küreleri temsil eden iki yeni
SpatialExternalSurfaceComposables. (I40ef2, b/391705799) SubspaceModifier.aspectRatioeklendi (Ide5ab, b/399729509, b/414762147)SceneCoreEntityAPI'si,SceneCoreile Compose for XR arasındaki birlikte çalışabilirliği artırmak için eklendi. (I50bb3, b/423020989)- Ölçeklendirilmemiş VE
GravityAlignedözelliğini desteklemek içinGravityAlignedsubspaceAPI'si sağlandı (I07359)
API Değişiklikleri
SpatialDialog(),SpatialDialogProperties.dismissOnBacktuşuna basma yapılandırmasını izler. (Ib453b, b/416797132)minimumPanelDimension, Metre cinsinden gösterildiği içinDimensions(0.1f, 0.1f, 0.1f)yeni varsayılan boyutuna güncellendi. (Ib852a)- Alt alanlar ve Orbiters artık ana alanda ve uygulama arka plandayken kendi iç durumlarını koruyacak. Ev alanı modunda Subspace, tam alan moduna geçişe hazırlanmak için sahnesini kurmaya devam eder. (I40317, b/416037751)
SpatialDialogsartık uygulama arka plandayken durumlarını koruyacak. (I6aa56)ApplicationSubspaceartık önerilen ölçeğini ve konumunu sistemden devralacak. (I4565f, b/418834194)SubspaceComposablekarakteriSubspaceComposableolmayan bir bağlamda kullanıldığında daha iyi bir hata mesajı eklendi ve hata daha erken tetikleniyor. (Iee2ae, b/416484684)- Composable API'ler yanlış kullanıldığında uyarılar genellikle gözden kaçırıldığından
ExperimentalSubspaceVolumeApiuyarısını hata olarak güncelledik. (I427aa, b/424864286) - Subspace ve
ApplicationSubspaceartıkrecommendedContentBoxInFullSpaceile sınırlanıyor. Daha önceSpatialUser'nın görüş alanı ile sınırlıydı. (I41015, b/423074142) - Sabit kodlanmış boyut kullanılmaması için
SpatialElevationöğesini minimum boyutu kullanacak şekilde güncelleyin (I2dbe6, b/427785338) - Önemli bir değişken değiştirildiğinde güncellenmesi için
SpatialAcitivityPanelile ilgili antrenman yapma şeklimizi güncelleyin. (I0f64d, b/427999029) - Varsayılan kısıtlama değerlerini eşdeğer olarak ayarlamak için
VolumeConstraints.Unboundedöğesini kaldırın. (Ie24ec, b/407938414) SpatialFeatheringSizeartık herkese açık değil (I1c15b, b/399432430)- Compose'un
Placeableöğesinden ayırt etmek için XRPlaceableöğesiniSubspacePlaceableolarak yeniden adlandırdı. (I74874) - Orbiter ayarlarını kaldırma ve
shouldRenderInNonSpatialöğesini yeni bir parametre olarak ekleme. Ayrıca,EdgeOffsetsınıfını kaldırıpOrbiter()işlevlerini birleştirmek içinorbiterOffsetTypesınıfını yeni bir parametre olarak ekliyoruz. AyrıcaOrbiterEdgedosyasınıContentEdgeolarak yeniden adlandırın. (Iebf3d) - Türün Compose'un
Measurabletüründen ayırt edilmesi içinMeasurable,SubspaceMeasurableolarak yeniden adlandırıldı. (I9726c) MeasureResultdosyasınıSubspaceMeasureResultolarak yeniden adlandırın (I9f34d)setSubspaceContentAPI'si kaldırıldı. Bunun yerineSubspacecomposable ile Compose'unsetContentkullanılması önerilir. (Ifff4c, b/421427391, b/421427391)MeasurePolicy,SubspaceMeasurePolicyolarak yeniden adlandırıldı. (I37a9b, b/422553904)- Varsayılanlar olmadan üye ekleyemeyeceğimiz için
SubspaceSemanticsInfo'yı kapalı bir arayüze dönüştürün. (I372f9, b/423704068) SpatialExternalSurfacedokümanları güncellendi,ContentSecurityLevel,SurfaceProtectionolarak yeniden adlandırıldı (I3c460, b/420982808)- Taşınabilir değiştirici için, sabitlemeye olanak tanıyan aşırı yüklenmiş oluşturucu sağlandı. (Ic0c70)
- İpuçları için daha fazla konum sağlayıcı eklendi. Böylece geliştiriciler, ipucunun bağlantının üstünde, altında, solunda veya sağında yerleştirilip yerleştirilmeyeceğini kontrol edebilir. Şapka işaretleri için bir Şekil alan bir API ekleyin. Böylece daha fazla özel şekil sağlanabilir. (Ie513c, b/374766087, b/418854637)
CoreEntity,PublishedApiolarak kaldırıldı (Ifee05)
Hata Düzeltmeleri
SpatialDialogsimgesinin oluşturulurken yanıp sönmesi sorunu düzeltildi. (Ife73c, b/401619909)- Etkinlik panelinin
SpatialDialogile karartılamaması sorunu düzeltildi. (I8ca6c, b/367442109) - XR iletişim kutusunda bazı içeriklerin gösterilmemesi sorunu düzeltildi (I17cd5, b/418062437).
- İçerikte tıklandığında
SpatialPopupsimgesinin kapatılması sorunu düzeltildi. (If262c, b/417245722) resizable().movable()ile zincirleme yapıldığında SpatialPanel'in yeni boyuta doğru şekilde yeniden boyutlandırılamaması sorunu düzeltildi. (I02ee3, b/422264230)SpatialComposeVideoPlayeriçindeki menüyle çakışan sabittopBarsorunu düzeltildi (Id33bc, b/427168167)- Sabit köşe yarıçapının oluşturulmaması sorunu düzeltildi (I975fe, b/428261830).
Sürüm 1.0.0-alpha04
7 Mayıs 2025
androidx.xr.compose:compose:1.0.0-alpha04 ve androidx.xr.compose:compose-testing:1.0.0-alpha04 yayınlandı. 1.0.0-alpha04 sürümü bu commit'leri içerir.
Yeni Özellikler
- Özel
SubspaceModifiertürlerinin kompozisyon yerel değerlerine erişmesine olanak tanıyanCompositionLocalConsumerSubspaceModifierNodearayüzü eklendi. - Compose
AndroidViewuygulama stilini izleyen ve öncekiViewBased SpatialPanelAPI'sinin desteğini sonlandıran yeni birSpatialPanelAPI eklendi. - Sınırsız kısıtlamaları temsil eden
VolumeConstraints.Unboundedeşlik eden nesnesi eklendi. - Uzamsallaştırılmış ses kaynağına izin vermek için
SubspaceModifier.onPointSourceParamseklendi. - Uygulamanın mekansal içerik oluşturabileceği bir 3D alan tanımlamak için isteğe bağlı
VolumeConstraintssunan herkese açık birApplicationSubspaceeklendi. Varsayılan olarak, herhangi bir kısıtlama belirtilmezse alt uzay,SpatialUser'nın genişlik ve yükseklik açısından mevcut görüş alanıyla sınırlanır. Kullanıcılar, görüş alanı belirlenemezse kullanılacak kısıtlamalar sağlayabilir. Aksi takdirde, varsayılan görüş alanı genişliği ve yüksekliği değerleri kullanılır. - Stereoskopik içerik oluşturmak için kullanılabilecek
SpatialExternalSurfaceeklendi.SpatialExternalSurface, değiştiricilerle (alfa hariç) ve kenar yumuşatma efektiyle özelleştirilebilir. - Kullanıcıların uzamsal işaretçinin simgesini ayarlamasına olanak tanıyan yeni bir
pointerHoverIconalt alan değiştiricisi eklendi.
API Değişiklikleri
- Tüm Jetpack XR paketlerindeki
RequiresApi(34)kısıtlaması kaldırıldı. Jetpack XR şu anda yalnızca API düzeyi 34 ve üzeri olan cihazlarda kullanılabildiğinden bu kısıtlama gereksizdi. (Iae0f8) - Kotlin 2.0 ile yayınlanan projelerin kullanılabilmesi için KGP 2.0.0 veya daha yeni bir sürüm gerekir. (Idb6b5)
- Geriye doğru işleme artık yerleştirilmiş etkinlikler içermeyen uzamsal panellerde çalışacak. Geriye doğru işlemeyi kullanmak için android manifest dosyasında
android:enableOnBackInvokedCallback="true"belirtmeniz gerekir. - Geriye dokunma artık uzamsal iletişim kutularında çalışacak. Geriye doğru işleme özelliğinin çalışması için Android manifestinde
android:enableOnBackInvokedCallback="true"belirtmeniz gerekir. - Compose tabanlı ve View tabanlı
SpatialPanelartık içeriklerine göre boyutlandırılabilir. - Geliştiriciler artık kendi özel
SpatialElevationLeveldeğerlerini ayarlayabilir ve önceden tanımlanmış seviyelerle sınırlı değildir. - Orbiter yükseklik düzeyi artık
elevationparametresi aracılığıyla özelleştirilebilir. - Alt alan, varsayılan olarak
SpatialUser'nın genişlik ve yükseklik açısından görüş alanıyla sınırlandırılabilir. Görüş alanı belirlenemezse varsayılan görüş alanı genişliği ve yüksekliği değerleri kullanılır. Movabledeğiştiricisine yeni geri çağırmalaronMoveStartveonMoveEndeklendi.onMoveStartveonMoveEndgeri çağırmaları, kullanıcı taşınabilir değiştiriciyle birleştirilebilen bir alt alanı taşımaya başladığında ve taşımayı bitirdiğinde çağrılır.nameparametresi,SpatialRowveSpatialPanelgibi coğrafi API'lerden kaldırıldı. Uzamsal Compose ağaçlarında hata ayıklamak için bunun yerineSubspaceModifier.testTagkullanın.- Yalnızca
spatialElevationLevelvecontentiçerenSpatialPopup'nın desteklenmeyen aşırı yüklemesi kaldırıldı. LütfenonDimissRequestsimgesini destekleyen arayüzü kullanın. - Movable değiştiricisinden gelen
onPoseChangegeri çağırma kaldırıldı. Bunun yerineonMovepolitikasını kullanın. SubspaceModifiers, ayrılmışsa veya şu anda ayrılıyorsa efektlerini artık uygulamaz.- Mevcut
SpatialRowAPI'siSpatialRowveSpatialCurvedRowolarak ikiye bölündü. Daha önceSpatialRow'nıncurveRadiusparametresini kullanıyorsanız artık aynı davranışı sunanSpatialCurvedRowparametresini kullanın. MainPanelveActivityPanel, benzer şekilde yeni bir sistem görüntüsünde çalıştırıldığında artık başlık çubuğuna sahip değildir.- Alfa ve ölçek değiştiriciler artık yığılabilir ve son uygulanan alfa veya ölçek değeri için değerlerini çarpacaktır.
onPoseChangeTaşınabilir değiştiriciden gelen geri çağırma, daha sorunsuz poz hareketi için optimize edildi.- Taşınabilir ve yeniden boyutlandırılabilir değiştiriciler artık durum değişikliklerinin yeniden oluşturmayı tetiklemesini sağlamak için geri çağırmalarını ana iş parçacığında gerçekleştirecek.
SubspaceLayoutiçindeki durum değişikliklerinin yeniden düzenlemeyi tetiklemesini sağlamak için düzen ve ölçü aşamalarına durum gözlemi eklendi.- Mevcut değiştiricilerin daha iyi yeniden kullanılması için optimize edilmiş değiştirici zinciri güncellemeleri.
Hata Düzeltmeleri
SpatialDialoggösterildiğinde scrimming durdurulur. (Ic4594)- Değiştirici düğümler ayrılmış durumdayken yapılan yeniden düzenleme istekleri artık yoksayılacak.
- Movable ve Resizable değiştiricileri tarafından tetiklenen yeniden düzenleme aşamaları kaldırıldı.
- Boyutlardan biri doğrudan veya düzen hesaplaması sırasında (ör.
SpatialRow/SpatialColumnhesaplaması) sıfıra ayarlandığında oluşanMainPanel()composable'daki kilitlenme sorunu düzeltildi. Panel artık gizlenecek. Bu düzeltmenin özellikle düzen aşamasındaki kilitlenmeleri ele aldığını unutmayın. Panelin kullanıcı etkileşimi aracılığıyla sıfıra yeniden boyutlandırılması ayrı olarak ele alınacaktır. Gizli panelde kullanıcı arayüzü olanakları yok. - Yeniden boyutlandırılabilir değiştiriciden
maintainAspectRatioile ilgili sorun düzeltildi. En boy oranı korunmalıdır. - İç içe yerleştirilmiş alt uzayların tek bir kare için yanlış konumlandırılmasına neden olan sorun düzeltildi.
- Yuvarlak köşelerin bazen uygulanması gerektiği halde uygulanmaması sorunu düzeltildi.
NestedSubspacesartık yanlış konumdaki bir karede görünmeyecek.
Sürüm 1.0.0-alpha03
26 Şubat 2025
androidx.xr.compose:compose:1.0.0-alpha03 ve androidx.xr.compose:compose-testing:1.0.0-alpha03, son alfa sürümünden bu yana önemli bir değişiklik yapılmadan yayınlandı. 1.0.0-alpha03 sürümü bu commit'leri içerir.
Sürüm 1.0.0-alpha02
12 Şubat 2025
androidx.xr.compose:compose:1.0.0-alpha02 ve androidx.xr.compose:compose-testing:1.0.0-alpha02 yayınlandı. 1.0.0-alpha02 sürümü bu commit'leri içerir.
Yeni Özellikler
- Etkinlik paneli, artık bir uzamsal iletişim kutusu etkinleştirildiğinde içeriğini karartabilir.
OrbiterAPI artıkSubspaceComposablebağlamlarında kullanılabilir ve Orbiters'ı en yakınSubspaceLayouttabanlı composable üst öğeye ekler.- Özelleştirilebilen konum tabanlı değiştiricilere izin vermek için
LayoutCoordinatesAwareModifierNodetanıtıldı. SubspaceModifier.Nodeiçin ekleme/ayırma yaşam döngüsü yöntemleri eklendi.- Hareketli değiştiriciye
scaleWithDistanceeklendi.scaleWithDistanceetkinleştirildiğinde, taşınan alt alan öğesi büyür veya küçülür. Ayrıca, hareketten önce sahip olduğu açık ölçeği de korur.
API Değişiklikleri
SessionCallbackProvider,SpatialCapabilitieslehine kaldırıldı.
Diğer değişiklikler
minSDKdeğeri 24'e düşürüldü. Tüm Jetpack XR API'leri, çalışma zamanında API 34 gerektirmeye devam eder.OrbiterEdgeOffset.inner,EdgeOffset.outerveEdgeOffset.overlapoluşturucular artık@Composableyöntemleri değildir. Bu sayede, birleştirilemeyen bağlamlarda kullanılabilirler.- Uzamsal yükseklik seviyelerini en yeni kullanıcı deneyimi spesifikasyonuna uyacak şekilde güncelleyin.
SubspaceSemanticsInfoarayüzünüMeasurableLayout'ye uygulayın.SubspaceModifierElement,SubspaceModifierNodeElementolarak yeniden adlandırıldı.
Hata düzeltmeleri
SubspaceModifiersıralamasını sabitlemeye yönelik düzeltmeler.SubspaceModifierdaha güvenilir bir şekilde çalışmalıdır. Öteleme, döndürme, ölçeklendirme, taşınabilir ve yeniden boyutlandırılabilir değiştiriciler artık herhangi bir sırada kullanılabilir.
Sürüm 1.0.0-alpha01
12 Aralık 2024
androidx.xr.compose:compose-*1.0.0-alpha01 iptal edilir.
İlk Sürümün Özellikleri
XR için Jetpack Compose'un ilk geliştirici sürümü. İster mevcut bir 2D uygulamayı XR'ye taşıyor ister sıfırdan yeni bir XR uygulaması oluşturuyor olun, XR'de mekansal kullanıcı arayüzü düzenleri oluşturmak için satırlar ve sütunlar gibi tanıdık Compose kavramlarını kullanın. Bu kitaplık, mevcut 2D Compose veya Görünümler tabanlı kullanıcı arayüzünüzü uzamsal bir düzene yerleştirmenize olanak tanıyan alt alan ve uzamsal composable'lar (ör. uzamsal paneller ve yörüngeler) sağlar. 3D modeller gibi SceneCore öğelerini kullanıcı arayüzünüze göre yerleştirmenize olanak tanıyan Volume alt alanı composable'ı kullanıma sunulur. Daha fazla bilgiyi bu geliştirici kılavuzunda bulabilirsiniz:
Subspace: Bu composable, uygulamanızın kullanıcı arayüzü hiyerarşisinde herhangi bir yere yerleştirilebilir. Böylece, dosyalar arasındaki bağlamı kaybetmeden 2D ve uzamsal kullanıcı arayüzü düzenlerini koruyabilirsiniz. Bu sayede, mevcut uygulama mimarisi gibi öğeleri tüm kullanıcı arayüzü ağacınızda durumu yükseltmenize veya uygulamanızın mimarisini yeniden tasarlamanıza gerek kalmadan XR ve diğer form faktörleri arasında daha kolay paylaşabilirsiniz.SpatialPanel: SpatialPanel, uygulama içeriğini görüntülemenize olanak tanıyan bir alt uzay bileşenidir. Örneğin, video oynatma, hareketsiz görüntüler veya diğer içerikleri SpatialPanel'de görüntüleyebilirsiniz.
Orbiter: Orbiter, uzamsal bir kullanıcı arayüzü bileşenidir. İlgili bir uzamsal panele eklenmek üzere tasarlanmıştır ve bu uzamsal panelle ilgili gezinme ve bağlamsal işlem öğelerini içerir. Örneğin, video içeriğini göstermek için bir uzamsal panel oluşturduysanız yörüngeye video oynatma kontrolleri ekleyebilirsiniz.
Hacim: 3D modeller gibi SceneCore öğelerini kullanıcı arayüzünüze göre yerleştirin.
Uzamsal Yerleşim:
SpatialRow,SpatialColumn,SpatialBoxveSpatialLayoutSpacerkullanarak birden fazla uzamsal panel oluşturup bunları Uzamsal Yerleşim'e yerleştirebilirsiniz. Düzeninizi özelleştirmek içinSubspaceModifiersimgesini kullanın.Uzamsal kullanıcı arayüzü bileşenleri: Bu öğeler 2D kullanıcı arayüzünüzde yeniden kullanılabilir ve uzamsal özellikleri yalnızca uzamsal özellikler etkinleştirildiğinde görünür.
SpatialDialog: Panel, yükseltilmiş bir iletişim kutusu göstermek için z derinliğinde biraz geriye itilir.SpatialPopUp: Panel, yükseltilmiş bir pop-up göstermek için z derinliğinde biraz geriye itilir.SpatialElevation:SpatialElevationLevel, yüksekliği eklemek için ayarlanabilir.
SpatialCapabilities: Kullanıcılar uygulamanızla veya sistemle etkileşimde bulundukça mekansal özellikler değişebilir, hatta uygulamanızın kendisi tarafından da değiştirilebilir (ör. Ev Alanı'na veya Tam Alan'a geçiş). Sorun yaşamamak için uygulamanızın, mevcut ortamda hangi API'lerin desteklendiğini belirlemek üzere
LocalSpatialCapabilities.currentolup olmadığını kontrol etmesi gerekir.isSpatialUiEnabled: Üç boyutlu kullanıcı arayüzü öğeleri (ör. SpatialPanel)isContent3dEnabled: 3D nesnelerisAppEnvironmentEnabled: OrtamisPassthroughControlEnabled: Uygulamanın, geçiş durumunu kontrol edip edemeyeceğiisSpatialAudioEnabled: Üç boyutlu ses
Bilinen Sorunlar
- Şu anda XR için Jetpack Compose'u kullanmak üzere minimum SDK sürümü 30 olmalıdır. Geçici çözüm olarak, 23 minSDK ile derleme ve çalıştırma yapabilmek için aşağıdaki manifest girişini
<uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>ekleyebilirsiniz. - Jetpack XR uygulamalarının şu anda AndroidManifest'te
android.permission.SCENE_UNDERSTANDINGizni istemesi gerekiyor. - Bir uygulama, manifest dosyasındaki
PROPERTY_XR_ACTIVITY_START_MODEözelliğini kullanarak doğrudan Tam Alan'da başlatıldığında Etkinlikler/Uygulamalar, Tam Alan'a geçmeden önce başlangıçta Ev Alanı'nda açılır. - Volume Composables'daki glTF'ler başlangıçta yanlış konumda titreyebilir.
- Önemli ölçüde taşınmış bir panelde SpatialDialog kullanmak, içeriği yanlış yöne iter.