جتپک برای 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 ) -
SubspaceModifierssizeIn،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 با یکSubspacecomposable استفاده شد. ( 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 ۳۴ نیاز دارند. - سازندههای
OrbiterEdgeOffset.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 در پنلی که به طور قابل توجهی جابجا شده است، محتوا را در جهت اشتباه هدایت میکند.