جتپک برای XR آهنگسازی میکند
آخرین بهروزرسانی | انتشار پایدار | کاندیدای انتشار | انتشار بتا | انتشار آلفا |
---|---|---|---|---|
۲۲ اکتبر ۲۰۲۵ | - | - | - | ۱.۰.۰-آلفا۰۸ |
اعلام وابستگیها
برای افزودن یک وابستگی به XR compose، باید مخزن Google Maven را به پروژه خود اضافه کنید. برای اطلاعات بیشتر، مخزن Maven گوگل را مطالعه کنید.
وابستگیهای مربوط به مصنوعات مورد نیاز خود را در فایل build.gradle
برای برنامه یا ماژول خود اضافه کنید:
شیار
dependencies { implementation "androidx.xr.compose:compose:1.0.0-alpha08" // Use to write unit tests testImplementation "androidx.xr.compose:compose-testing:1.0.0-alpha08" }
کاتلین
dependencies { implementation("androidx.xr.compose:compose:1.0.0-alpha08") // Use to write unit tests testImplementation("androidx.xr.compose:compose-testing:1.0.0-alpha08") }
برای اطلاعات بیشتر در مورد وابستگیها، به «افزودن وابستگیهای ساخت» مراجعه کنید.
بازخورد
بازخورد شما به بهبود Jetpack کمک میکند. اگر مشکلات جدیدی کشف کردید یا ایدههایی برای بهبود این کتابخانه دارید، به ما اطلاع دهید. لطفاً قبل از ایجاد یک کتابخانه جدید، نگاهی به مشکلات موجود در این کتابخانه بیندازید. میتوانید با کلیک بر روی دکمه ستاره، رأی خود را به یک مشکل موجود اضافه کنید.
برای اطلاعات بیشتر به مستندات ردیاب مشکل مراجعه کنید.
نسخه ۱.۰
نسخه ۱.۰.۰-آلفا۰۸
۲۲ اکتبر ۲۰۲۵
androidx.xr.compose:compose:1.0.0-alpha08
و androidx.xr.compose:compose-testing:1.0.0-alpha08
منتشر شدند. نسخه 1.0.0-alpha08 شامل این کامیتها است.
تغییرات API
-
ResizePolicy
تغییر دادیم تاonResizeStart
،onResizeUpdate
وonResizeEnd
بپذیرد. ( I7e21f )
رفع اشکالات
- جلوگیری از خرابی هنگام از بین بردن یک فعالیت با استفاده از Subspace. ( I595a1 )
نسخه ۱.۰.۰-آلفا۰۷
۲۴ سپتامبر ۲۰۲۵
androidx.xr.compose:compose:1.0.0-alpha07
و androidx.xr.compose:compose-testing:1.0.0-alpha07
منتشر شدند. نسخه 1.0.0-alpha07 شامل این کامیتها است.
تغییرات API
- KDocs بهبود یافته برای
SpatialMainPanel
. ( I27b70 ، b/444467891 ) -
SpatialArrangement
برای مرتبسازی عناصر فرزند در امتداد محور اصلی در طرحبندیهای سهبعدی مانندSpatialRow
وSpatialColumn
معرفی شد. این API جدید گزینههای چیدمان آشنا از Compose دوبعدی، از جملهStart
،End
،Center
،SpaceBetween
،SpaceAround
وSpaceEvenly
را با پشتیبانی کامل از هر دو جهت طرحبندی LTR و RTL ارائه میدهد. ( I7db38 ، b/436289959 ) - یک رابط پایه برای
SubspaceModifier.Node
اضافه شد تا ایمنی نوع و قابلیت استفاده از رابطهای افزونه بهبود یابد؛ مانند-
CompositionLocalConsumerSubspaceModifierNode
-
LayoutCoordinatesAwareModifierNode
-
SubspaceLayoutModifierNode
-
CoreEntityNode
(داخلی) ( Iede00 ، b/440599394 ، b/440599394 )
-
-
SpatialExternalSurface
بدون محدودیت ( I33315 ، b/439646773 ) -
SubspaceModifier
به Subspace composables معرفی کنید و پارامتر constraints را باSubspaceModifier
باSubspaceModifiers
مرتبط با اندازه جایگزین کنید. اگرallowUnboundedSubspace
برابر با true باشد، Subspaceها همچنان میتوانند محدودیتهای نامحدود داشته باشند. ( Ib06e6 , b/433331675 ) - منسوخ کردن
SubspaceModifiers
متحرک و تغییر اندازه پذیر، اکنون کهDragPolicy()
وResizePolicy()
بخشی از API هایSpatialPanel
وSpatialExternalSurface
هستند ( I397bf ، b/437924639 ) - پشتیبانی از
LayoutDirection
در طرحبندیهای فضایی اضافه شد. Composable با استفاده ازSpatialAlignment
اکنون عناصر را به درستی در هر دو زمینه چپ به راست و راست به چپ قرار میدهد. ( I964bb , b/436300273 ) - پارامترهای Resizable و Movable را به APIهای
Panel
اضافه کنید تا مطمئن شوید که این رفتارها فقط میتوانند روی کانتینرهای پشتیبانیشده اعمال شوند. ( Id491c ) -
SubspaceModifiers
sizeIn
،widthIn
،heightIn
،depthIn
اضافه شدند که به شما امکان میدهند محدودیتهای حداقل و حداکثر دقیقی را برای عرض، ارتفاع و عمق تعیین کنید. ( I1af09 ، b/433330761 )
نسخه ۱.۰.۰-alpha06
۱۳ آگوست ۲۰۲۵
androidx.xr.compose:compose:1.0.0-alpha06
و androidx.xr.compose:compose-testing:1.0.0-alpha06
منتشر شدند. نسخه 1.0.0-alpha06 شامل این کامیتها است.
رفع اشکالات
- وقتی مالک چرخه حیات از بین میرود،
ComposeXrOwnerLocals
دوباره ایجاد کن. ( 9123ce1 )
نسخه ۱.۰.۰-آلفا۰۵
۳۰ ژوئیه ۲۰۲۵
androidx.xr.compose:compose:1.0.0-alpha05
و androidx.xr.compose:compose-testing:1.0.0-alpha05
منتشر شدند. نسخه 1.0.0-alpha05 شامل این کامیتها است.
ویژگیهای جدید
- کلاس حاشیهنویسی
SubspaceComposable
را عمومی کرد. ( Ic2a34 ، b/399432430 ) - دو ترکیبپذیر جدید
SpatialExternalSurface
که نمایانگر کرههای ۱۸۰ و ۳۶۰ درجه هستند. ( I40ef2 ، b/391705799 ) -
SubspaceModifier.aspectRatio
اضافه شد ( Ide5ab ، b/399729509 ، b/414762147 ) - رابط برنامهنویسی کاربردی
SceneCoreEntity
برای بهبود قابلیت همکاری بینSceneCore
و Compose برای XR اضافه شد. ( I50bb3 ، b/423020989 ) - API
GravityAlignedsubspace
برای پشتیبانی از ویژگی مقیاسبندی نشده وGravityAligned
( I07359 ) ارائه داد.
تغییرات API
-
SpatialDialog()
از پیکربندی مطبوعاتSpatialDialogProperties.dismissOnBack
پیروی خواهد کرد. ( Ib453b ، b/416797132 ) -
minimumPanelDimension
به اندازه ابعاد پیشفرض جدیدDimensions(0.1f, 0.1f, 0.1f)
بهروزرسانی کنید، زیرا واحد آن متر است. ( Ib852a ) - Subspaceها و Orbiters اکنون وضعیت داخلی خود را در فضای خانه و زمانی که برنامه در پسزمینه است، حفظ میکنند. در حالت فضای خانه، Subspace همچنان صحنه خود را برای آمادهسازی برای تغییر به حالت فضای کامل تنظیم میکند. ( I40317 ، b/416037751 )
-
SpatialDialogs
اکنون وضعیت خود را وقتی برنامه در پسزمینه است حفظ میکند. ( I6aa56 ) -
ApplicationSubspace
اکنون مقیاس و موقعیت پیشنهادی خود را از سیستم به ارث میبرد. ( I4565f , b/418834194 ) - یک پیام خطای بهتر اضافه شد و وقتی
SubspaceComposable
در یک زمینه غیرSubspaceComposable
استفاده میشود، خطا زودتر فعال میشود. ( Iee2ae ، b/416484684 ) - بهروزرسانی
ExperimentalSubspaceVolumeApi
از Warning به Error زیرا هشدارها اغلب هنگام استفاده نادرست از APIهای قابل ترکیب نادیده گرفته میشوند. ( I427aa , b/424864286 ) - Subspace و
ApplicationSubspace
اکنون توسطrecommendedContentBoxInFullSpace
محدود شدهاند. قبلاً توسط Field of View مربوط بهSpatialUser
محدود میشد. ( I41015 , b/423074142 ) -
SpatialElevation
بهروزرسانی کنید تا از حداقل اندازه استفاده کند و دیگر از اندازهی کدگذاریشدهی ثابت ( I2dbe6 ، b/427785338 ) استفاده نکند. - بهروزرسانی نحوهی اسکریم کردن
SpatialAcitivityPanel
برای بهروزرسانی هنگام تغییر یک متغیر کلیدی. ( I0f64d , b/427999029 ) -
VolumeConstraints.Unbounded
حذف کنید و مقادیر پیشفرض محدودیت را معادل آن قرار دهید. ( Ie24ec ، b/407938414 ) -
SpatialFeatheringSize
دیگر عمومی نیست ( I1c15b , b/399432430 ) - نام XR
Placeable
بهSubspacePlaceable
تغییر داد تا آن را ازPlaceable
مربوط به Compose متمایز کند. ( I74874 ) - حذف تنظیمات Orbiter و اضافه کردن
shouldRenderInNonSpatial
به عنوان یک پارامتر جدید. علاوه بر این، حذف کلاسEdgeOffset
و اضافه کردنorbiterOffsetType
به عنوان یک پارامتر جدید برای ادغام توابعOrbiter()
. و همچنین تغییر نامOrbiterEdge
بهContentEdge
. ( Iebf3d ) - برای تمایز این نوع از نوع
Measurable
در Compose، نامMeasurable
بهSubspaceMeasurable
تغییر یافت. ( I9726c ) - تغییر نام
MeasureResult
بهSubspaceMeasureResult
( I9f34d ) - API
setSubspaceContent
حذف شد و به جای آن ازsetContent
مربوط به Compose با یکSubspace
composable استفاده شد. ( Ifff4c , b/421427391 , b/421427391 ) -
MeasurePolicy
بهSubspaceMeasurePolicy
تغییر نام داده شده است. ( I37a9b , b/422553904 ) -
SubspaceSemanticsInfo
به یک رابط مهر و موم شده تبدیل کنید زیرا بدون پیشفرضها قادر به اضافه کردن اعضا نخواهیم بود. ( I372f9 , b/423704068 ) - مستندات
SpatialExternalSurface
بهروزرسانی شد، وContentSecurityLevel
بهSurfaceProtection
تغییر نام داد ( I3c460 ، b/420982808 ) - سازندهی overload شدهای برای اصلاحکنندهی متحرک ارائه شده است که امکان لنگر انداختن را فراهم میکند. ( Ic0c70 )
- ارائهدهنده موقعیت بیشتری برای راهنماهای ابزار اضافه کنید تا توسعهدهندگان بتوانند کنترل کنند که آیا راهنما در بالا، پایین، چپ یا راست لنگر قرار میگیرد یا خیر. یک API اضافه کنید که برای caretها یک شکل میگیرد، تا شکلهای سفارشی بیشتری ارائه شود. ( Ie513c ، b/374766087 ، b/418854637 )
-
CoreEntity
به عنوان یکPublishedApi
حذف شد ( Ifee05 )
رفع اشکالات
- مشکل چشمک زدن
SpatialDialog
هنگام رندر شدن برطرف شد. ( Ife73c ، b/401619909 ) - مشکلی که باعث میشد
SpatialDialog
نتواند پنل فعالیت را اسکریم کند، برطرف شد. ( I8ca6c ، b/367442109 ) - رفع مشکل عدم نمایش برخی از محتوا در کادر محاورهای XR ( I17cd5 ، b/418062437 )
- مشکلی که باعث میشد
SpatialPopup
هنگام کلیک درون محتوا بسته شود، برطرف شد. ( If262c ، b/417245722 ) - مشکلی که باعث میشد هنگام زنجیرهسازی
resizable().movable()
SpatialPanel نتواند به درستی به اندازه جدید تغییر اندازه دهد، برطرف شد. ( I02ee3 , b/422264230 ) - مشکل همپوشانی
topBar
با منو درSpatialComposeVideoPlayer
( Id33bc ، b/427168167 ) برطرف شد. - رفع مشکل رندر نشدن شعاع گوشه ( I975fe ، b/428261830 )
نسخه ۱.۰.۰-آلفا۰۴
۷ مه ۲۰۲۵
androidx.xr.compose:compose:1.0.0-alpha04
و androidx.xr.compose:compose-testing:1.0.0-alpha04
منتشر شدند. نسخه 1.0.0-alpha04 شامل این کامیتها است.
ویژگیهای جدید
- رابط
CompositionLocalConsumerSubspaceModifierNode
اضافه شد تا به انواع سفارشیSubspaceModifier
اجازه دسترسی به مقادیر محلی ترکیب داده شود. - یک API جدید
SpatialPanel
اضافه شده است که از سبک پیادهسازی ComposeAndroidView
پیروی میکند وViewBased SpatialPanel
قبلی را منسوخ میکند. - شیء همراه
VolumeConstraints.Unbounded
که نشاندهندهی محدودیتهای نامحدود است، اضافه شد. -
SubspaceModifier.onPointSourceParams
اضافه شد تا امکان استفاده از منبع صوتی فضایی فراهم شود. - یک
ApplicationSubspace
عمومی اضافه شده است کهVolumeConstraints
اختیاری را برای تعریف یک ناحیه سهبعدی که برنامه میتواند محتوای مکانی را در آن رندر کند، ارائه میدهد. به طور پیشفرض، اگر هیچ محدودیتی مشخص نشده باشد، Subspace توسط میدان دید فعلیSpatialUser
در عرض و ارتفاع محدود میشود. کاربران میتوانند محدودیتهایی را برای استفاده در صورتی که میدان دید قابل تعیین نباشد، ارائه دهند. در غیر این صورت، از مقادیر پیشفرض عرض و ارتفاع میدان دید استفاده میشود. -
SpatialExternalSurface
اضافه شد که میتواند برای رندر محتوای استریوسکوپیک استفاده شود.SpatialExternalSurface
با اصلاحکنندهها (به جز آلفا) و یک جلوه پر کردن لبه قابل تنظیم است. - یک اصلاحکنندهی زیرفضای جدید برای
pointerHoverIcon
اضافه شده است که به کاربران اجازه میدهد آیکون را برای اشارهگر فضایی تنظیم کنند.
تغییرات API
- محدودیت
RequiresApi(34)
از روی تمام بستههای Jetpack XR حذف شد. این محدودیت اضافی بود زیرا Jetpack XR در حال حاضر فقط روی دستگاههایی با سطح API 34+ در دسترس است. ( Iae0f8 ) - پروژههایی که با کاتلین ۲.۰ منتشر شدهاند، برای استفاده به KGP ۲.۰.۰ یا جدیدتر نیاز دارند. ( IDb6b5 )
- اکنون مدیریت بازگشتی روی پنلهای مکانی بدون فعالیتهای تعبیهشده کار خواهد کرد. برای اینکه مدیریت بازگشتی کار کند، باید
android:enableOnBackInvokedCallback="true"
در مانیفست اندروید مشخص کنید. - اکنون Backhandling روی دیالوگهای مکانی کار خواهد کرد. برای اینکه backhandling کار کند، باید
android:enableOnBackInvokedCallback="true"
در مانیفست اندروید مشخص کنید. -
SpatialPanel
های مبتنی بر Compose و View اکنون میتوانند بر اساس محتویاتشان اندازه خود را تغییر دهند. - توسعهدهندگان اکنون میتوانند مقادیر
SpatialElevationLevel
سفارشی خود را تنظیم کنند و محدود به سطوح از پیش تعریفشده نیستند. - اکنون میتوان سطح ارتفاع مدارگرد را از طریق پارامتر
elevation
سفارشیسازی کرد. - اکنون میتوان به طور پیشفرض، زیرفضا را با میدان دید
SpatialUser
در عرض و ارتفاع محدود کرد. اگر میدان دید قابل تعیین نباشد، از مقادیر پیشفرض عرض و ارتفاع میدان دید استفاده میشود. - فراخوانیهای جدید
onMoveStart
وonMoveEnd
به اصلاحگرMovable
اضافه شد. فراخوانیهایonMoveStart
وonMoveEnd
زمانی فراخوانی میشوند که کاربر حرکت یک زیرفضای قابل ترکیب با اصلاحگر movable را شروع و پایان میدهد. - پارامتر
name
از APIهای مکانی مانندSpatialRow
وSpatialPanel
حذف شده است. برای اشکالزدایی درختهای ترکیب مکانی، به جای آنSubspaceModifier.testTag
استفاده کنید. - یک سربار پشتیبانی نشده از
SpatialPopup
که فقطspatialElevationLevel
وcontent
دارد، حذف شد. لطفاً از رابطی استفاده کنید کهonDimissRequest
پشتیبانی میکند. - تابع فراخوانی
onPoseChange
از اصلاحگر Movable حذف شده است. به جای آنonMove
استفاده کنید. - اگر
SubspaceModifiers
جدا شده باشند یا در حال جدا شدن باشند، دیگر اثرات خود را اعمال نخواهند کرد. - رابط برنامهنویسی کاربردی (API) موجود
SpatialRow
بهSpatialRow
وSpatialCurvedRow
تقسیم شده است. اگر قبلاً از پارامترcurveRadius
مربوط بهSpatialRow
استفاده میکردید، اکنون ازSpatialCurvedRow
استفاده کنید که همان رفتار را ارائه میدهد. -
MainPanel
وActivityPanel
دیگر هنگام اجرا روی یک تصویر سیستم مشابه اخیر، نوارهای عنوان ندارند. - اصلاحکنندههای آلفا و مقیاس اکنون قابل انباشت هستند و مقادیر خود را برای مقدار آلفا یا مقیاس نهایی اعمال شده در هم ضرب میکنند.
- تابع فراخوانی
onPoseChange
از اصلاحکنندهی Movable بهینهسازی شده است تا حرکت پوز (position) را روانتر انجام دهد. - اصلاحکنندههای قابل جابجایی و قابل تغییر اندازه اکنون فراخوانیهای خود را در نخ اصلی انجام میدهند تا اطمینان حاصل شود که تغییرات حالت، ترکیب مجدد را آغاز میکنند.
- مشاهده وضعیت به مراحل طرحبندی و اندازهگیری اضافه شد تا اطمینان حاصل شود که تغییرات وضعیت در
SubspaceLayout
باعث فعال شدن رله میشود. - بهروزرسانیهای زنجیره اصلاحکننده بهینهشده برای استفاده مجدد بهتر از اصلاحکنندههای موجود.
رفع اشکالات
- وقتی
SpatialDialog
نمایش داده میشود، اسکریمینگ متوقف میشود. ( Ic4594 ) - درخواستهای رلهای که در حین جدا شدن گرههای اصلاحکننده انجام میشوند، اکنون نادیده گرفته میشوند.
- فازهای رلهای که توسط اصلاحکنندههای Movable و Resizable فعال میشدند، حذف شدند.
- مشکل از کار افتادن در
MainPanel()
که هنگام صفر کردن هر یک از ابعاد، چه مستقیماً و چه در حین محاسبه طرحبندی، مثلاً محاسبهSpatialRow/SpatialColumn
رخ میداد، برطرف شد. اکنون پنل به جای آن پنهان خواهد شد. توجه داشته باشید که این اصلاحیه به طور خاص به رفع مشکلات از کار افتادن در طول مرحله طرحبندی میپردازد؛ تغییر اندازه پنل به صفر از طریق تعامل با کاربر به طور جداگانه انجام خواهد شد. پنل پنهان فاقد رابط کاربری کارآمد است. - مشکل مربوط به
maintainAspectRatio
از اصلاحگر resizable برطرف شد. نسبت ابعاد اکنون باید حفظ شود. - مشکلی که در آن زیرفضاهای تو در تو، در یک فریم واحد به اشتباه در جای خود قرار میگرفتند، برطرف شد.
- مشکلی که باعث میشد گوشههای گرد گاهی اوقات در زمان مناسب اعمال نشوند، برطرف شد.
- دیگر برای یک فریم در مکان اشتباه،
NestedSubspaces
ظاهر نمیشوند.
نسخه ۱.۰.۰-آلفا۰۳
۲۶ فوریه ۲۰۲۵
androidx.xr.compose:compose:1.0.0-alpha03
و androidx.xr.compose:compose-testing:1.0.0-alpha03
بدون هیچ تغییر قابل توجهی از آخرین نسخه آلفا منتشر شدهاند. نسخه 1.0.0-alpha03 شامل این کامیتها است.
نسخه ۱.۰.۰-آلفا۰۲
۱۲ فوریه ۲۰۲۵
androidx.xr.compose:compose:1.0.0-alpha02
و androidx.xr.compose:compose-testing:1.0.0-alpha02
منتشر شدند. نسخه 1.0.0-alpha02 شامل این کامیتها است.
ویژگیهای جدید
- پنل فعالیت اکنون میتواند محتوای خود را هنگام فعال شدن یک گفتگوی مکانی، scrim کند.
- API
Orbiter
اکنون در زمینههایSubspaceComposable
قابل استفاده است و Orbiterها را به نزدیکترین والد قابل ترکیب مبتنی برSubspaceLayout
خود متصل میکند. -
LayoutCoordinatesAwareModifierNode
برای امکان استفاده از اصلاحکنندههای سفارشی مبتنی بر موقعیتیابی معرفی شد. - متدهای چرخه عمر attach/detach به
SubspaceModifier.Node
اضافه شد. -
scaleWithDistance
به اصلاحکنندهی متحرک اضافه شد. وقتیscaleWithDistance
فعال باشد، عنصر زیرفضای جابجا شده بزرگ یا کوچک میشود. همچنین هر مقیاس صریحی را که قبل از جابجایی داشته است، حفظ میکند.
تغییرات API
-
SessionCallbackProvider
به نفعSpatialCapabilities
حذف شد.
تغییرات دیگر
- کاهش
minSDK
به ۲۴. تمام APIهای Jetpack XR همچنان در زمان اجرا به API ۳۴ نیاز دارند. - سازندههای
Orbiter
EdgeOffset.inner
،EdgeOffset.outer
وEdgeOffset.overlap
دیگر متدهای@Composable
نیستند، که به آنها اجازه میدهد در زمینههای غیر قابل ترکیب استفاده شوند. - بهروزرسانی سطوح ارتفاعی مکانی برای مطابقت با آخرین مشخصات UX.
- رابط
SubspaceSemanticsInfo
را درMeasurableLayout
پیادهسازی کنید. - نام
SubspaceModifierElement
بهSubspaceModifierNodeElement
تغییر یافت.
رفع اشکالات
- اصلاحاتی برای تثبیت ترتیب
SubspaceModifier
.SubspaceModifier
باید با اطمینان بیشتری رفتار کند. اکنون میتوان از اصلاحکنندههای offset، rotate، scale، movable و resizable در هر ترتیبی استفاده کرد.
نسخه ۱.۰.۰-آلفا۰۱
۱۲ دسامبر ۲۰۲۴
androidx.xr.compose:compose-*1.0.0-alpha01
منتشر شد.
ویژگیهای انتشار اولیه
نسخه اولیه توسعهدهندگان Jetpack Compose برای XR. از مفاهیم آشنای Compose مانند ردیفها و ستونها برای ایجاد طرحبندیهای رابط کاربری فضایی در XR استفاده کنید، چه در حال انتقال یک برنامه دوبعدی موجود به XR باشید و چه یک برنامه XR جدید را از ابتدا ایجاد کنید. این کتابخانه زیرفضاها و ترکیبهای فضایی را ارائه میدهد: مانند پنلهای فضایی و مدارگردها، که به شما امکان میدهند ترکیب دوبعدی موجود یا رابط کاربری مبتنی بر نماها را در یک طرحبندی فضایی قرار دهید. این کتابخانه زیرفضاهای حجمی را معرفی میکند که به شما امکان میدهد موجودیتهای SceneCore، مانند مدلهای سهبعدی، را نسبت به رابط کاربری خود قرار دهید. در این راهنمای توسعهدهندگان بیشتر بیاموزید:
Subspace
: این ترکیبپذیر را میتوان در هر جایی از سلسله مراتب رابط کاربری برنامه شما قرار داد و به شما امکان میدهد طرحبندیهای رابط کاربری دوبعدی و فضایی را بدون از دست دادن زمینه بین فایلها حفظ کنید. این امر اشتراکگذاری چیزهایی مانند معماری برنامه موجود بین XR و سایر عوامل فرم را بدون نیاز به انتقال وضعیت در کل درخت رابط کاربری یا معماری مجدد برنامه، آسانتر میکند.SpatialPanel : یک پنل فضایی یک زیرفضای قابل ترکیب است که به شما امکان نمایش محتوای برنامه را میدهد - برای مثال، میتوانید پخش ویدیو، تصاویر ثابت یا هر محتوای دیگری را در یک پنل فضایی نمایش دهید.
مدارگرد : یک مدارگرد یک کامپوننت رابط کاربری فضایی است. این کامپوننت طوری طراحی شده است که به یک پنل فضایی مربوطه متصل شود و شامل آیتمهای ناوبری و اقدامات زمینهای مرتبط با آن پنل فضایی است. برای مثال، اگر یک پنل فضایی برای نمایش محتوای ویدیویی ایجاد کردهاید، میتوانید کنترلهای پخش ویدیو را درون یک مدارگرد اضافه کنید.
حجم : موجودیتهای SceneCore، مانند مدلهای سهبعدی، را نسبت به رابط کاربری خود قرار دهید.
طرحبندی فضایی: شما میتوانید چندین پنل فضایی ایجاد کنید و آنها را با استفاده
SpatialRow
،SpatialColumn
،SpatialBox
وSpatialLayoutSpacer
درون یک طرحبندی فضایی قرار دهید. ازSubspaceModifier
برای سفارشیسازی طرحبندی خود استفاده کنید.اجزای رابط کاربری فضایی: این عناصر میتوانند در رابط کاربری دوبعدی شما دوباره استفاده شوند و ویژگیهای مکانی آنها فقط زمانی قابل مشاهده خواهد بود که قابلیتهای مکانی فعال باشند.
-
SpatialDialog
: پنل در عمق z کمی به عقب هل داده میشود تا یک کادر محاورهای با ارتفاع بالا نمایش داده شود. -
SpatialPopUp
: پنل در عمق z کمی به عقب فشار داده میشود تا یک پنجره بازشو در ارتفاع بالا نمایش داده شود. -
SpatialElevation
: میتوانSpatialElevationLevel
برای افزودن ارتفاع تنظیم کرد.
-
SpatialCapabilities: قابلیتهای فضایی میتوانند با تعامل کاربران با برنامه یا سیستم شما تغییر کنند، یا حتی میتوانند توسط خود برنامه شما تغییر کنند - برای مثال، انتقال به Home Space یا Full Space. برای جلوگیری از مشکلات، برنامه شما باید
LocalSpatialCapabilities.current
را بررسی کند تا مشخص شود کدام APIها در محیط فعلی پشتیبانی میشوند.isSpatialUiEnabled
: عناصر رابط کاربری فضایی (مثلاً SpatialPanel)isContent3dEnabled
: اشیاء سهبعدیisAppEnvironmentEnabled
: محیطisPassthroughControlEnabled
: اینکه آیا برنامه میتواند وضعیت عبور را کنترل کند یا خیرisSpatialAudioEnabled
: صدای فضایی
مشکلات شناخته شده
- در حال حاضر برای استفاده از Jetpack Compose برای XR، به minSDK با مقدار 30 نیاز است. به عنوان یک راه حل، میتوانید ورودی مانیفست زیر را اضافه کنید
<uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>
تا بتوانید با minSDK با مقدار 23 بسازید و اجرا کنید. - برنامههای Jetpack XR در حال حاضر نیاز به درخواست مجوز
android.permission.SCENE_UNDERSTANDING
در AndroidManifest دارند. - وقتی یک برنامه با استفاده از ویژگی
PROPERTY_XR_ACTIVITY_START_MODE
در مانیفست خود، مستقیماً در فضای کامل (Full Space) اجرا میشود، فعالیتها/برنامهها ابتدا در فضای خانه (Home Space) باز میشوند و سپس به فضای کامل (Full Space) منتقل میشوند. - glTFها در Volume Composableها ممکن است در ابتدا در مکان اشتباهی سوسو بزنند.
- استفاده از SpatialDialog در پنلی که به طور قابل توجهی جابجا شده است، محتوا را در جهت اشتباه هدایت میکند.