Jetpack Compose برای XR
آخرین به روز رسانی | انتشار پایدار | کاندید را آزاد کنید | نسخه بتا | انتشار آلفا |
---|---|---|---|---|
30 جولای 2025 | - | - | - | 1.0.0-alpha05 |
اعلام وابستگی ها
برای افزودن وابستگی به XR compose، باید مخزن Google Maven را به پروژه خود اضافه کنید. برای اطلاعات بیشتر، مخزن Maven Google را بخوانید.
وابستگیهای مصنوعات مورد نیاز خود را در فایل build.gradle
برای برنامه یا ماژول خود اضافه کنید:
شیار
dependencies { implementation "androidx.xr.compose:compose:1.0.0-alpha05" // Use to write unit tests testImplementation "androidx.xr.compose:compose-testing:1.0.0-alpha05" }
کاتلین
dependencies { implementation("androidx.xr.compose:compose:1.0.0-alpha05") // Use to write unit tests testImplementation("androidx.xr.compose:compose-testing:1.0.0-alpha05") }
برای اطلاعات بیشتر درباره وابستگیها، به افزودن وابستگیهای ساخت نگاه کنید.
بازخورد
بازخورد شما به بهتر شدن Jetpack کمک می کند. اگر مسائل جدیدی کشف کردید یا ایده هایی برای بهبود این کتابخانه دارید، به ما اطلاع دهید. لطفاً قبل از ایجاد کتابخانه جدید، به مسائل موجود در این کتابخانه نگاهی بیندازید. با کلیک کردن روی دکمه ستاره می توانید رای خود را به یک موضوع موجود اضافه کنید.
برای اطلاعات بیشتر به مستندات ردیاب مشکل مراجعه کنید.
نسخه 1.0
نسخه 1.0.0-alpha05
30 جولای 2025
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
Composable جدید که نمایانگر کره های 180 و 360 درجه هستند. ( I40ef2 , b/391705799 ) -
SubspaceModifier.aspectRatio
اضافه شد ( Ide5ab , b/399729509 , b/414762147 ) -
SceneCoreEntity
API را برای بهبود قابلیت همکاری بینSceneCore
و Compose برای XR اضافه کرد. ( I50bb3 , b/423020989 ) - ارائه
GravityAlignedsubspace
API برای پشتیبانی از ویژگی بدون مقیاس AndGravityAligned
( I07359 )
تغییرات API
-
SpatialDialog()
از پیکربندی مطبوعاتیSpatialDialogProperties.dismissOnBack
پیروی می کند. ( Ib453b , b/416797132 ) -
minimumPanelDimension
به اندازه ابعاد پیشفرض جدید بهروزرسانی کنیدDimensions(0.1f, 0.1f, 0.1f)
به دلیل نمایش آن بر حسب متر. ( IB852a ) - فضاهای فرعی و مدارگردها اکنون حالت داخلی خود را در فضای خانه و زمانی که برنامه در پسزمینه است حفظ میکنند. در حالت فضای خانگی، 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
محدود شدهاند. قبلاً توسط میدان دیدSpatialUser
محدود شده بود. ( I41015 , b/423074142 ) -
SpatialElevation
بهروزرسانی کنید تا از اندازه حداقل استفاده کنید تا دیگر از اندازه کدگذاری سخت استفاده نکنید ( I2dbe6 , b/427785338 ) - نحوه به روز رسانی
SpatialAcitivityPanel
را به روز کنید تا وقتی یک متغیر کلیدی تغییر می کند. ( I0f64d , b/427999029 ) - حذف
VolumeConstraints.Unbounded
به نفع تنظیم مقادیر پیش فرض محدودیت به معادل. ( Ie24ec , b/407938414 ) -
SpatialFeatheringSize
دیگر عمومی نیست ( I1c15b , b/399432430 ) - XR
Placeable
بهSubspacePlaceable
تغییر نام داد تا از Compose'sPlaceable
متمایز شود. ( I74874 ) - حذف تنظیمات Orbiter و اضافه کردن
shouldRenderInNonSpatial
به عنوان یک پارامتر جدید. علاوه بر این، حذف کلاسEdgeOffset
و اضافه کردنorbiterOffsetType
به عنوان یک پارامتر جدید برای ادغام توابعOrbiter()
. و همچنین تغییر نامOrbiterEdge
بهContentEdge
. ( Iebf3d ) -
Measurable
بهSubspaceMeasurable
تغییر نام داد تا نوع را از Compose'sMeasurable
متمایز کند. ( I9726c ) - تغییر نام
MeasureResult
بهSubspaceMeasureResult
( I9f34d ) -
setSubspaceContent
API را به نفع استفاده از Compose'ssetContent
با یکSubspace
composable حذف کرد. ( Ifff4c , b/421427391 , b/421427391 ) -
MeasurePolicy
بهSubspaceMeasurePolicy
تغییر نام داد. ( I37a9b , b/422553904 ) -
SubspaceSemanticsInfo
به یک رابط مهر و موم شده تبدیل کنید زیرا نمی توانیم بدون پیش فرض اعضا اضافه کنیم. ( I372f9 , b/423704068 ) - اسناد
SpatialExternalSurface
بهروزرسانی شده، بهContentSecurityLevel
بهSurfaceProtection
تغییر نام داد ( I3c460 , b/420982808 ) - سازنده اضافه بار برای اصلاح کننده متحرک ارائه شده است که امکان لنگر انداختن را فراهم می کند. ( IC0c70 )
- ارائهدهنده موقعیت بیشتری را برای راهنماییهای ابزار اضافه کنید تا اکنون توسعهدهندگان بتوانند کنترل کنند که راهنمای ابزار در بالا، پایین، چپ یا راست لنگر قرار گرفته باشد. یک API اضافه کنید که شکلی برای carets می گیرد تا شکل های سفارشی بیشتری ارائه شود. ( 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 )
نسخه 1.0.0-alpha04
7 مه 2025
androidx.xr.compose:compose:1.0.0-alpha04
و androidx.xr.compose:compose-testing:1.0.0-alpha04
منتشر شده است. نسخه 1.0.0-alpha04 حاوی این تعهدات است.
ویژگی های جدید
- رابط
CompositionLocalConsumerSubspaceModifierNode
اضافه شد تا به انواعSubspaceModifier
سفارشی اجازه دسترسی به مقادیر محلی ترکیب را بدهد. - یک
SpatialPanel
API جدید اضافه شد که از سبک پیادهسازیAndroidView
پیروی میکند و ازViewBased SpatialPanel
قبلی منسوخ میشود. - اضافه شدن
VolumeConstraints.Unbounded
شی همراه که نشان دهنده محدودیت های نامحدود است. -
SubspaceModifier.onPointSourceParams
اضافه شد تا به منبع صوتی فضایی اجازه دهد. - یک
ApplicationSubspace
عمومی اضافه شده است، کهVolumeConstraints
اختیاری را برای تعریف یک منطقه سه بعدی که در آن برنامه می تواند محتوای فضایی را ارائه کند، ارائه می دهد. بهطور پیشفرض، اگر هیچ محدودیتی مشخص نشده باشد، فضای فرعی با میدان دید فعلیSpatialUser
در عرض و ارتفاع محدود میشود. در صورتی که میدان دید قابل تعیین نباشد، کاربران می توانند محدودیت هایی را برای استفاده از آنها ارائه کنند. در غیر این صورت، از مقادیر عرض و ارتفاع میدان دید پیش فرض استفاده می شود. -
SpatialExternalSurface
اضافه شده است که می تواند برای ارائه محتوای استریوسکوپی استفاده شود.SpatialExternalSurface
با اصلاح کننده ها (به جز آلفا) و جلوه پر لبه قابل تنظیم است. - یک اصلاح کننده زیرفضای
pointerHoverIcon
جدید اضافه شده است که به کاربران اجازه می دهد نماد را برای نشانگر فضایی تنظیم کنند.
تغییرات API
- محدودیت
RequiresApi(34)
در تمام بستههای Jetpack XR حذف شد. این محدودیت اضافی بود زیرا Jetpack XR در حال حاضر فقط در دستگاههایی با سطح API 34+ در دسترس است. ( Iae0f8 ) - پروژههایی که با Kotlin 2.0 منتشر میشوند برای مصرف نیاز به KGP 2.0.0 یا جدیدتر دارند. ( Idb6b5 )
- کنترل پشتی اکنون روی پانل های فضایی بدون فعالیت های تعبیه شده کار می کند. برای اینکه مدیریت برگشت کار کند، باید
android:enableOnBackInvokedCallback="true"
در مانیفست اندروید مشخص کنید. - Backhandling اکنون روی گفتگوهای فضایی کار می کند. برای اینکه بک هندلینگ کار کند، باید
android:enableOnBackInvokedCallback="true"
در مانیفست اندروید مشخص کنید. -
SpatialPanel
های مبتنی بر Compose و View-based اکنون می توانند اندازه خود را بر اساس محتویاتشان اندازه بگیرند. - توسعه دهندگان اکنون می توانند مقادیر
SpatialElevationLevel
سفارشی خود را تنظیم کنند و محدود به سطوح از پیش تعریف شده نیستند. - اکنون ممکن است سطح ارتفاع مدارگرد از طریق پارامتر
elevation
تنظیم شود. - اکنون زیرفضا می تواند به صورت پیش فرض توسط میدان دید
SpatialUser
در عرض و ارتفاع محدود شود. اگر نمی توان میدان دید را تعیین کرد، از مقادیر پیش فرض عرض و ارتفاع میدان دید استفاده می شود. - تماسهای جدید
onMoveStart
وonMoveEnd
به اصلاحکنندهMovable
اضافه شد. تماسهایonMoveStart
وonMoveEnd
زمانی فراخوانی میشوند که کاربر حرکت یک زیرفضای قابل ترکیب با تغییر دهنده متحرک را شروع و پایان میدهد. - پارامتر
name
از APIهای فضایی مانندSpatialRow
وSpatialPanel
حذف شده است. برای اشکال زدایی درختان ترکیب فضایی ازSubspaceModifier.testTag
استفاده کنید. - یک بار اضافی پشتیبانی نشده از
SpatialPopup
که فقط دارایspatialElevationLevel
وcontent
بود حذف شد. لطفاً از رابطی استفاده کنید کهonDimissRequest
پشتیبانی می کند. - پاسخ تماس
onPoseChange
از اصلاح کننده Movable حذف شده است. به جای آن ازonMove
استفاده کنید. -
SubspaceModifiers
اگر جدا شده باشند یا در حال حاضر جدا شوند دیگر جلوه های خود را اعمال نمی کنند. -
SpatialRow
API موجود بهSpatialRow
وSpatialCurvedRow
تقسیم شده است. اگر قبلاً از پارامترcurveRadius
SpatialRow
استفاده می کردید، اکنون به جای آنSpatialCurvedRow
استفاده کنید که همان رفتار را ارائه می دهد. -
MainPanel
وActivityPanel
وقتی روی یک تصویر سیستم مشابه اخیر اجرا می شوند، دیگر نوار عنوان ندارند. - اصلاحکنندههای آلفا و مقیاس اکنون قابل انباشته شدن هستند و مقادیر خود را برای آلفای اعمال شده نهایی یا مقدار مقیاس ضرب میکنند.
- پاسخ تماس
onPoseChange
از اصلاح کننده Movable بهینه شده است تا حرکات پوزی نرمتر را انجام دهد. - اصلاحکنندههای متحرک و قابل تغییر اندازه، اکنون تماسهای خود را روی رشته اصلی انجام میدهند تا اطمینان حاصل کنند که تغییرات حالت باعث ترکیب مجدد میشود.
- مشاهده وضعیت به طرح و مراحل اندازه گیری اضافه شد تا اطمینان حاصل شود که تغییرات حالت در
SubspaceLayout
باعث ایجاد رله می شود. - بهروزرسانیهای زنجیره اصلاحکننده برای استفاده مجدد بهتر از اصلاحکنندههای موجود.
رفع اشکال
- هنگامی که
SpatialDialog
نشان داده میشود، قیام کردن متوقف شد. ( IC4594 ) - درخواستهای تغییر شکلی که هنگام جدا شدن گرههای اصلاحکننده انجام میشوند، اکنون نادیده گرفته میشوند.
- حذف فازهای رلهای که توسط اصلاحکنندههای Movable و Resizable فعال شدهاند.
- یک خرابی در
MainPanel()
composable که زمانی رخ داد که هر یک از ابعاد به طور مستقیم یا در حین محاسبه طرحبندی، به عنوان مثال، یک محاسبهSpatialRow/SpatialColumn
روی صفر تنظیم شد. اکنون پانل به جای آن پنهان می شود. توجه داشته باشید که این اصلاح به طور خاص به خرابی ها در مرحله طرح بندی می پردازد. تغییر اندازه پنل به صفر از طریق تعامل کاربر به طور جداگانه انجام می شود. پانل مخفی فاقد امکانات رابط کاربری است. - مشکل
maintainAspectRatio
از اصلاح کننده قابل تغییر سایز برطرف شد. نسبت ابعاد باید در حال حاضر حفظ شود. - مشکلی در زیر فضاهای تودرتو که در آن به اشتباه برای یک فریم قرار می گرفتند، رفع شد.
- مشکلی که گوشههای گرد گاهی اوقات در زمانی که باید اعمال نمیشد، برطرف شد.
-
NestedSubspaces
دیگر برای یک فریم در مکان اشتباه ظاهر نمی شود.
نسخه 1.0.0-alpha03
26 فوریه 2025
androidx.xr.compose:compose:1.0.0-alpha03
و androidx.xr.compose:compose-testing:1.0.0-alpha03
بدون هیچ تغییر قابل توجهی از آخرین آلفا منتشر شده اند. نسخه 1.0.0-alpha03 حاوی این commit ها است
نسخه 1.0.0-alpha02
12 فوریه 2025
androidx.xr.compose:compose:1.0.0-alpha02
و androidx.xr.compose:compose-testing:1.0.0-alpha02
منتشر شدند. نسخه 1.0.0-alpha02 حاوی این تعهدات است.
ویژگی های جدید
- وقتی یک گفتگوی فضایی فعال می شود، پانل فعالیت اکنون می تواند محتوای خود را مخدوش کند.
-
Orbiter
API اکنون در زمینههایSubspaceComposable
قابل استفاده است و Orbiters را به نزدیکترین والد composable مبتنی برSubspaceLayout
متصل میکند. -
LayoutCoordinatesAwareModifierNode
معرفی کرد تا به اصلاح کننده های مبتنی بر موقعیت یابی سفارشی اجازه دهد. - روشهای چرخه حیات پیوست/جدا کردن به
SubspaceModifier.Node
اضافه شد. -
scaleWithDistance
به اصلاح کننده متحرک اضافه شد. وقتیscaleWithDistance
فعال باشد، عنصر زیرفضای منتقل شده رشد یا کوچک می شود. همچنین هر مقیاس صریحی را که قبل از حرکت داشت حفظ می کند.
تغییرات API
-
SessionCallbackProvider
به نفعSpatialCapabilities
حذف شد.
تغییرات دیگر
-
minSDK
به 24 کاهش داد. همه APIهای Jetpack XR همچنان به API 34 در زمان اجرا نیاز دارند. - سازندگان
Orbiter
EdgeOffset.inner
،EdgeOffset.outer
وEdgeOffset.overlap
دیگر متدهای@Composable
نیستند، که به آنها اجازه می دهد در زمینه های غیرقابل ترکیب استفاده شوند. - سطوح ارتفاع مکانی را برای مطابقت با آخرین مشخصات UX به روز کنید.
- رابط
SubspaceSemanticsInfo
را درMeasurableLayout
پیاده سازی کنید. -
SubspaceModifierElement
بهSubspaceModifierNodeElement
تغییر نام داد.
رفع اشکال
- رفع تثبیت سفارش
SubspaceModifier
.SubspaceModifier
باید قابل اعتمادتر رفتار کند. اصلاح کننده افست، چرخش، مقیاس، متحرک و قابل تغییر اندازه اکنون باید به هر ترتیبی قابل استفاده باشد.
نسخه 1.0.0-alpha01
12 دسامبر 2024
androidx.xr.compose:compose-*1.0.0-alpha01
منتشر شد.
ویژگی های Initial Release
انتشار اولیه توسعه دهنده Jetpack Compose برای XR. از مفاهیم آشنای Compose مانند سطرها و ستونها برای ایجاد طرحبندیهای UI فضایی در XR استفاده کنید، چه در حال انتقال یک برنامه دو بعدی موجود به XR یا ایجاد یک برنامه XR جدید از ابتدا باشید. این کتابخانه زیرفضا و قابلیتهای فضایی را فراهم میکند: مانند پانلهای فضایی و مدارگردها، که به شما امکان میدهند UI دو بعدی یا مبتنی بر Views خود را در یک طرحبندی فضایی قرار دهید. زیرفضای Volume composable را معرفی می کند که به شما امکان می دهد موجودیت های SceneCore مانند مدل های سه بعدی را نسبت به رابط کاربری خود قرار دهید. در این راهنمای توسعه دهنده بیشتر بیاموزید:
Subspace
: این قابل ترکیب را می توان در هر جایی در سلسله مراتب UI برنامه شما قرار داد، به شما این امکان را می دهد که طرح بندی ها را برای UI دو بعدی و فضایی بدون از دست دادن زمینه بین فایل ها حفظ کنید. این کار اشتراکگذاری مواردی مانند معماری برنامههای موجود بین XR و سایر فاکتورهای شکل را بدون نیاز به بالا بردن حالت در کل درخت رابط کاربری یا معماری مجدد برنامهتان آسانتر میکند.SpatialPanel : یک پانل فضایی یک زیرفضای قابل ترکیب است که به شما امکان می دهد محتوای برنامه را نمایش دهید – برای مثال، می توانید پخش ویدیو، تصاویر ثابت یا هر محتوای دیگری را در یک پانل فضایی نمایش دهید.
مدارگرد : مدارگرد یک جزء رابط کاربری فضایی است. طراحی شده است تا به یک پانل فضایی مربوطه متصل شود و شامل موارد ناوبری و کنش متنی مربوط به آن پانل فضایی است. برای مثال، اگر یک پانل فضایی برای نمایش محتوای ویدیویی ایجاد کردهاید، میتوانید کنترلهای پخش ویدیو را در یک مدارگرد اضافه کنید.
حجم : موجودیت های SceneCore، مانند مدل های سه بعدی را نسبت به رابط کاربری خود قرار دهید.
Spatial Layout: میتوانید چندین پانل فضایی ایجاد کنید و با استفاده از
SpatialRow
،SpatialColumn
،SpatialBox
وSpatialLayoutSpacer
آنها را در یک Spatial Layout قرار دهید. ازSubspaceModifier
s برای سفارشی کردن چیدمان خود استفاده کنید.اجزای فضایی رابط کاربری: این عناصر را میتوان در رابط کاربری دوبعدی شما استفاده مجدد کرد و ویژگیهای فضایی آنها تنها زمانی قابل مشاهده خواهند بود که قابلیتهای فضایی فعال باشند.
-
SpatialDialog
: پانل کمی به عقب در عمق z فشار می آورد تا یک گفتگوی بالا را نمایش دهد. -
SpatialPopUp
: پانل کمی به عقب در عمق z فشار می آورد تا یک پنجره بازشوی بالا نمایش داده شود. -
SpatialElevation
:SpatialElevationLevel
را می توان برای اضافه کردن ارتفاع تنظیم کرد.
-
قابلیتهای فضایی: قابلیتهای فضایی میتواند با تعامل کاربران با برنامه یا سیستم شما تغییر کند، یا حتی میتواند توسط خود برنامه شما تغییر کند—مثلاً حرکت به فضای خانه یا فضای کامل. برای جلوگیری از مشکلات، برنامه شما باید
LocalSpatialCapabilities.current
را بررسی کند تا مشخص کند کدام API در محیط فعلی پشتیبانی میشود.isSpatialUiEnabled
: عناصر رابط کاربری فضایی (مثلاً SpatialPanel)isContent3dEnabled
: اشیاء سه بعدیisAppEnvironmentEnabled
: محیطisPassthroughControlEnabled
: این که آیا برنامه می تواند وضعیت عبور را کنترل کند یا نهisSpatialAudioEnabled
audio :
مسائل شناخته شده
- در حال حاضر برای استفاده از 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
در مانیفست خود به فضای کامل راهاندازی میشود، فعالیتها/برنامهها ابتدا قبل از انتقال به فضای کامل در Home Space باز میشوند. - glTFها در Volume Composables ممکن است در ابتدا در مکان اشتباه سوسو بزنند.
- استفاده از SpatialDialog در پانلی که به طور قابل توجهی جابجا شده است، محتوا را در جهت اشتباه سوق می دهد.
Jetpack Compose برای XR
آخرین به روز رسانی | انتشار پایدار | کاندید را آزاد کنید | نسخه بتا | انتشار آلفا |
---|---|---|---|---|
30 جولای 2025 | - | - | - | 1.0.0-alpha05 |
اعلام وابستگی ها
برای افزودن وابستگی به XR compose، باید مخزن Google Maven را به پروژه خود اضافه کنید. برای اطلاعات بیشتر، مخزن Maven Google را بخوانید.
وابستگیهای مصنوعات مورد نیاز خود را در فایل build.gradle
برای برنامه یا ماژول خود اضافه کنید:
شیار
dependencies { implementation "androidx.xr.compose:compose:1.0.0-alpha05" // Use to write unit tests testImplementation "androidx.xr.compose:compose-testing:1.0.0-alpha05" }
کاتلین
dependencies { implementation("androidx.xr.compose:compose:1.0.0-alpha05") // Use to write unit tests testImplementation("androidx.xr.compose:compose-testing:1.0.0-alpha05") }
برای اطلاعات بیشتر درباره وابستگیها، به افزودن وابستگیهای ساخت نگاه کنید.
بازخورد
بازخورد شما به بهتر شدن Jetpack کمک می کند. اگر مسائل جدیدی کشف کردید یا ایده هایی برای بهبود این کتابخانه دارید، به ما اطلاع دهید. لطفاً قبل از ایجاد کتابخانه جدید، به مسائل موجود در این کتابخانه نگاهی بیندازید. با کلیک کردن روی دکمه ستاره می توانید رای خود را به یک موضوع موجود اضافه کنید.
برای اطلاعات بیشتر به مستندات ردیاب مشکل مراجعه کنید.
نسخه 1.0
نسخه 1.0.0-alpha05
30 جولای 2025
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
Composable جدید که نمایانگر کره های 180 و 360 درجه هستند. ( I40ef2 , b/391705799 ) -
SubspaceModifier.aspectRatio
اضافه شد ( Ide5ab , b/399729509 , b/414762147 ) -
SceneCoreEntity
API را برای بهبود قابلیت همکاری بینSceneCore
و Compose برای XR اضافه کرد. ( I50bb3 , b/423020989 ) - ارائه
GravityAlignedsubspace
API برای پشتیبانی از ویژگی بدون مقیاس AndGravityAligned
( I07359 )
تغییرات API
-
SpatialDialog()
از پیکربندی مطبوعاتیSpatialDialogProperties.dismissOnBack
پیروی می کند. ( Ib453b , b/416797132 ) -
minimumPanelDimension
به اندازه ابعاد پیشفرض جدید بهروزرسانی کنیدDimensions(0.1f, 0.1f, 0.1f)
به دلیل نمایش آن بر حسب متر. ( IB852a ) - فضاهای فرعی و مدارگردها اکنون حالت داخلی خود را در فضای خانه و زمانی که برنامه در پسزمینه است حفظ میکنند. در حالت فضای خانگی، 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
محدود شدهاند. قبلاً توسط میدان دیدSpatialUser
محدود شده بود. ( I41015 , b/423074142 ) -
SpatialElevation
بهروزرسانی کنید تا از اندازه حداقل استفاده کنید تا دیگر از اندازه کدگذاری سخت استفاده نکنید ( I2dbe6 , b/427785338 ) - نحوه به روز رسانی
SpatialAcitivityPanel
را به روز کنید تا وقتی یک متغیر کلیدی تغییر می کند. ( I0f64d , b/427999029 ) - حذف
VolumeConstraints.Unbounded
به نفع تنظیم مقادیر پیش فرض محدودیت به معادل. ( Ie24ec , b/407938414 ) -
SpatialFeatheringSize
دیگر عمومی نیست ( I1c15b , b/399432430 ) - XR
Placeable
بهSubspacePlaceable
تغییر نام داد تا از Compose'sPlaceable
متمایز شود. ( I74874 ) - حذف تنظیمات Orbiter و اضافه کردن
shouldRenderInNonSpatial
به عنوان یک پارامتر جدید. علاوه بر این، حذف کلاسEdgeOffset
و اضافه کردنorbiterOffsetType
به عنوان یک پارامتر جدید برای ادغام توابعOrbiter()
. و همچنین تغییر نامOrbiterEdge
بهContentEdge
. ( Iebf3d ) -
Measurable
بهSubspaceMeasurable
تغییر نام داد تا نوع را از Compose'sMeasurable
متمایز کند. ( I9726c ) - تغییر نام
MeasureResult
بهSubspaceMeasureResult
( I9f34d ) -
setSubspaceContent
API را به نفع استفاده از Compose'ssetContent
با یکSubspace
composable حذف کرد. ( Ifff4c , b/421427391 , b/421427391 ) -
MeasurePolicy
بهSubspaceMeasurePolicy
تغییر نام داد. ( I37a9b , b/422553904 ) -
SubspaceSemanticsInfo
به یک رابط مهر و موم شده تبدیل کنید زیرا نمی توانیم بدون پیش فرض اعضا اضافه کنیم. ( I372f9 , b/423704068 ) - اسناد
SpatialExternalSurface
بهروزرسانی شده، بهContentSecurityLevel
بهSurfaceProtection
تغییر نام داد ( I3c460 , b/420982808 ) - سازنده اضافه بار برای اصلاح کننده متحرک ارائه شده است که امکان لنگر انداختن را فراهم می کند. ( IC0c70 )
- ارائهدهنده موقعیت بیشتری را برای راهنماییهای ابزار اضافه کنید تا اکنون توسعهدهندگان بتوانند کنترل کنند که راهنمای ابزار در بالا، پایین، چپ یا راست لنگر قرار گرفته باشد. یک API اضافه کنید که شکلی برای carets می گیرد تا شکل های سفارشی بیشتری ارائه شود. ( 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 )
نسخه 1.0.0-alpha04
7 مه 2025
androidx.xr.compose:compose:1.0.0-alpha04
و androidx.xr.compose:compose-testing:1.0.0-alpha04
منتشر شده است. نسخه 1.0.0-alpha04 حاوی این تعهدات است.
ویژگی های جدید
- رابط
CompositionLocalConsumerSubspaceModifierNode
اضافه شد تا به انواعSubspaceModifier
سفارشی اجازه دسترسی به مقادیر محلی ترکیب را بدهد. - یک
SpatialPanel
API جدید اضافه شد که از سبک پیادهسازیAndroidView
پیروی میکند و ازViewBased SpatialPanel
قبلی منسوخ میشود. - اضافه شدن
VolumeConstraints.Unbounded
شی همراه که نشان دهنده محدودیت های نامحدود است. -
SubspaceModifier.onPointSourceParams
اضافه شد تا به منبع صوتی فضایی اجازه دهد. - یک
ApplicationSubspace
عمومی اضافه شده است، کهVolumeConstraints
اختیاری را برای تعریف یک منطقه سه بعدی که در آن برنامه می تواند محتوای فضایی را ارائه کند، ارائه می دهد. بهطور پیشفرض، اگر هیچ محدودیتی مشخص نشده باشد، فضای فرعی با میدان دید فعلیSpatialUser
در عرض و ارتفاع محدود میشود. در صورتی که میدان دید قابل تعیین نباشد، کاربران می توانند محدودیت هایی را برای استفاده از آنها ارائه کنند. در غیر این صورت، از مقادیر عرض و ارتفاع میدان دید پیش فرض استفاده می شود. -
SpatialExternalSurface
اضافه شده است که می تواند برای ارائه محتوای استریوسکوپی استفاده شود.SpatialExternalSurface
با اصلاح کننده ها (به جز آلفا) و جلوه پر لبه قابل تنظیم است. - یک اصلاح کننده زیرفضای
pointerHoverIcon
جدید اضافه شده است که به کاربران اجازه می دهد نماد را برای نشانگر فضایی تنظیم کنند.
تغییرات API
- محدودیت
RequiresApi(34)
در تمام بستههای Jetpack XR حذف شد. این محدودیت اضافی بود زیرا Jetpack XR در حال حاضر فقط در دستگاههایی با سطح API 34+ در دسترس است. ( Iae0f8 ) - پروژههایی که با Kotlin 2.0 منتشر میشوند برای مصرف نیاز به KGP 2.0.0 یا جدیدتر دارند. ( Idb6b5 )
- کنترل پشتی اکنون روی پانل های فضایی بدون فعالیت های تعبیه شده کار می کند. برای اینکه مدیریت برگشت کار کند، باید
android:enableOnBackInvokedCallback="true"
در مانیفست اندروید مشخص کنید. - Backhandling اکنون روی گفتگوهای فضایی کار می کند. برای اینکه بک هندلینگ کار کند، باید
android:enableOnBackInvokedCallback="true"
در مانیفست اندروید مشخص کنید. -
SpatialPanel
های مبتنی بر Compose و View-based اکنون می توانند اندازه خود را بر اساس محتویاتشان اندازه بگیرند. - توسعه دهندگان اکنون می توانند مقادیر
SpatialElevationLevel
سفارشی خود را تنظیم کنند و محدود به سطوح از پیش تعریف شده نیستند. - اکنون ممکن است سطح ارتفاع مدارگرد از طریق پارامتر
elevation
تنظیم شود. - اکنون زیرفضا می تواند به صورت پیش فرض توسط میدان دید
SpatialUser
در عرض و ارتفاع محدود شود. اگر نمی توان میدان دید را تعیین کرد، از مقادیر پیش فرض عرض و ارتفاع میدان دید استفاده می شود. - تماسهای جدید
onMoveStart
وonMoveEnd
به اصلاحکنندهMovable
اضافه شد. تماسهایonMoveStart
وonMoveEnd
زمانی فراخوانی میشوند که کاربر حرکت یک زیرفضای قابل ترکیب با تغییر دهنده متحرک را شروع و پایان میدهد. - پارامتر
name
از APIهای فضایی مانندSpatialRow
وSpatialPanel
حذف شده است. برای اشکال زدایی درختان ترکیب فضایی ازSubspaceModifier.testTag
استفاده کنید. - یک بار اضافی پشتیبانی نشده از
SpatialPopup
که فقط دارایspatialElevationLevel
وcontent
بود حذف شد. لطفاً از رابطی استفاده کنید کهonDimissRequest
پشتیبانی می کند. - پاسخ تماس
onPoseChange
از اصلاح کننده Movable حذف شده است. به جای آن ازonMove
استفاده کنید. -
SubspaceModifiers
اگر جدا شده باشند یا در حال حاضر جدا شوند دیگر جلوه های خود را اعمال نمی کنند. -
SpatialRow
API موجود بهSpatialRow
وSpatialCurvedRow
تقسیم شده است. اگر قبلاً از پارامترcurveRadius
SpatialRow
استفاده می کردید، اکنون به جای آنSpatialCurvedRow
استفاده کنید که همان رفتار را ارائه می دهد. -
MainPanel
وActivityPanel
وقتی روی یک تصویر سیستم مشابه اخیر اجرا می شوند، دیگر نوار عنوان ندارند. - اصلاحکنندههای آلفا و مقیاس اکنون قابل انباشته شدن هستند و مقادیر خود را برای آلفای اعمال شده نهایی یا مقدار مقیاس ضرب میکنند.
- پاسخ تماس
onPoseChange
از اصلاح کننده Movable بهینه شده است تا حرکات پوزی نرمتر را انجام دهد. - اصلاحکنندههای متحرک و قابل تغییر اندازه، اکنون تماسهای خود را روی رشته اصلی انجام میدهند تا اطمینان حاصل کنند که تغییرات حالت باعث ترکیب مجدد میشود.
- مشاهده وضعیت به طرح و مراحل اندازه گیری اضافه شد تا اطمینان حاصل شود که تغییرات حالت در
SubspaceLayout
باعث ایجاد رله می شود. - بهروزرسانیهای زنجیره اصلاحکننده برای استفاده مجدد بهتر از اصلاحکنندههای موجود.
رفع اشکال
- هنگامی که
SpatialDialog
نشان داده میشود، قیام کردن متوقف شد. ( IC4594 ) - درخواستهای تغییر شکلی که هنگام جدا شدن گرههای اصلاحکننده انجام میشوند، اکنون نادیده گرفته میشوند.
- حذف فازهای رلهای که توسط اصلاحکنندههای Movable و Resizable فعال شدهاند.
- یک خرابی در
MainPanel()
composable که زمانی رخ داد که هر یک از ابعاد به طور مستقیم یا در حین محاسبه طرحبندی، به عنوان مثال، یک محاسبهSpatialRow/SpatialColumn
روی صفر تنظیم شد. اکنون پانل به جای آن پنهان می شود. توجه داشته باشید که این اصلاح به طور خاص به خرابی ها در مرحله طرح بندی می پردازد. تغییر اندازه پنل به صفر از طریق تعامل کاربر به طور جداگانه انجام می شود. پانل مخفی فاقد امکانات رابط کاربری است. - مشکل
maintainAspectRatio
از اصلاح کننده قابل تغییر سایز برطرف شد. نسبت ابعاد باید در حال حاضر حفظ شود. - مشکلی در زیر فضاهای تودرتو که در آن به اشتباه برای یک فریم قرار می گرفتند، رفع شد.
- مشکلی که گوشههای گرد گاهی اوقات در زمانی که باید اعمال نمیشد، برطرف شد.
-
NestedSubspaces
دیگر برای یک فریم در مکان اشتباه ظاهر نمی شود.
نسخه 1.0.0-alpha03
26 فوریه 2025
androidx.xr.compose:compose:1.0.0-alpha03
و androidx.xr.compose:compose-testing:1.0.0-alpha03
بدون هیچ تغییر قابل توجهی از آخرین آلفا منتشر شده اند. نسخه 1.0.0-alpha03 حاوی این commit ها است
نسخه 1.0.0-alpha02
12 فوریه 2025
androidx.xr.compose:compose:1.0.0-alpha02
و androidx.xr.compose:compose-testing:1.0.0-alpha02
منتشر شدند. نسخه 1.0.0-alpha02 حاوی این تعهدات است.
ویژگی های جدید
- وقتی یک گفتگوی فضایی فعال می شود، پانل فعالیت اکنون می تواند محتوای خود را مخدوش کند.
-
Orbiter
API اکنون در زمینههایSubspaceComposable
قابل استفاده است و Orbiters را به نزدیکترین والد composable مبتنی برSubspaceLayout
متصل میکند. -
LayoutCoordinatesAwareModifierNode
معرفی کرد تا به اصلاح کننده های مبتنی بر موقعیت یابی سفارشی اجازه دهد. - روشهای چرخه حیات پیوست/جدا کردن به
SubspaceModifier.Node
اضافه شد. -
scaleWithDistance
به اصلاح کننده متحرک اضافه شد. وقتیscaleWithDistance
فعال باشد، عنصر زیرفضای منتقل شده رشد یا کوچک می شود. همچنین هر مقیاس صریحی را که قبل از حرکت داشت حفظ می کند.
تغییرات API
-
SessionCallbackProvider
به نفعSpatialCapabilities
حذف شد.
تغییرات دیگر
-
minSDK
به 24 کاهش داد. همه APIهای Jetpack XR همچنان به API 34 در زمان اجرا نیاز دارند. - سازندگان
Orbiter
EdgeOffset.inner
،EdgeOffset.outer
وEdgeOffset.overlap
دیگر متدهای@Composable
نیستند، که به آنها اجازه می دهد در زمینه های غیرقابل ترکیب استفاده شوند. - سطوح ارتفاع مکانی را برای مطابقت با آخرین مشخصات UX به روز کنید.
- رابط
SubspaceSemanticsInfo
را درMeasurableLayout
پیاده سازی کنید. -
SubspaceModifierElement
بهSubspaceModifierNodeElement
تغییر نام داد.
رفع اشکال
- رفع تثبیت سفارش
SubspaceModifier
.SubspaceModifier
باید قابل اعتمادتر رفتار کند. اصلاح کننده افست، چرخش، مقیاس، متحرک و قابل تغییر اندازه اکنون باید به هر ترتیبی قابل استفاده باشد.
نسخه 1.0.0-alpha01
12 دسامبر 2024
androidx.xr.compose:compose-*1.0.0-alpha01
منتشر شد.
ویژگی های Initial Release
انتشار اولیه توسعه دهنده Jetpack Compose برای XR. از مفاهیم آشنای Compose مانند سطرها و ستونها برای ایجاد طرحبندیهای UI فضایی در XR استفاده کنید، چه در حال انتقال یک برنامه دو بعدی موجود به XR یا ایجاد یک برنامه XR جدید از ابتدا باشید. این کتابخانه زیرفضا و قابلیتهای فضایی را فراهم میکند: مانند پانلهای فضایی و مدارگردها، که به شما امکان میدهند UI دو بعدی یا مبتنی بر Views خود را در یک طرحبندی فضایی قرار دهید. زیرفضای Volume composable را معرفی می کند که به شما امکان می دهد موجودیت های SceneCore مانند مدل های سه بعدی را نسبت به رابط کاربری خود قرار دهید. در این راهنمای توسعه دهنده بیشتر بیاموزید:
Subspace
: این قابل ترکیب را می توان در هر جایی در سلسله مراتب UI برنامه شما قرار داد، به شما این امکان را می دهد که طرح بندی ها را برای UI دو بعدی و فضایی بدون از دست دادن زمینه بین فایل ها حفظ کنید. این کار اشتراکگذاری مواردی مانند معماری برنامههای موجود بین XR و سایر فاکتورهای شکل را بدون نیاز به بالا بردن حالت در کل درخت رابط کاربری یا معماری مجدد برنامهتان آسانتر میکند.SpatialPanel : یک پانل فضایی یک زیرفضای قابل ترکیب است که به شما امکان می دهد محتوای برنامه را نمایش دهید – برای مثال، می توانید پخش ویدیو، تصاویر ثابت یا هر محتوای دیگری را در یک پانل فضایی نمایش دهید.
مدارگرد : مدارگرد یک جزء رابط کاربری فضایی است. طراحی شده است تا به یک پانل فضایی مربوطه متصل شود و شامل موارد ناوبری و کنش متنی مربوط به آن پانل فضایی است. برای مثال، اگر یک پانل فضایی برای نمایش محتوای ویدیویی ایجاد کردهاید، میتوانید کنترلهای پخش ویدیو را در یک مدارگرد اضافه کنید.
حجم : موجودیت های SceneCore، مانند مدل های سه بعدی را نسبت به رابط کاربری خود قرار دهید.
Spatial Layout: میتوانید چندین پانل فضایی ایجاد کنید و با استفاده از
SpatialRow
،SpatialColumn
،SpatialBox
وSpatialLayoutSpacer
آنها را در یک Spatial Layout قرار دهید. ازSubspaceModifier
s برای سفارشی کردن چیدمان خود استفاده کنید.اجزای فضایی رابط کاربری: این عناصر را میتوان در رابط کاربری دوبعدی شما استفاده مجدد کرد و ویژگیهای فضایی آنها تنها زمانی قابل مشاهده خواهند بود که قابلیتهای فضایی فعال باشند.
-
SpatialDialog
: پانل کمی به عقب در عمق z فشار می آورد تا یک گفتگوی بالا را نمایش دهد. -
SpatialPopUp
: پانل کمی به عقب در عمق z فشار می آورد تا یک پنجره بازشوی بالا نمایش داده شود. -
SpatialElevation
:SpatialElevationLevel
را می توان برای اضافه کردن ارتفاع تنظیم کرد.
-
قابلیتهای فضایی: قابلیتهای فضایی میتواند با تعامل کاربران با برنامه یا سیستم شما تغییر کند، یا حتی میتواند توسط خود برنامه شما تغییر کند—مثلاً حرکت به فضای خانه یا فضای کامل. برای جلوگیری از مشکلات، برنامه شما باید
LocalSpatialCapabilities.current
را بررسی کند تا مشخص کند کدام API در محیط فعلی پشتیبانی میشود.isSpatialUiEnabled
: عناصر رابط کاربری فضایی (مثلاً SpatialPanel)isContent3dEnabled
: اشیاء سه بعدیisAppEnvironmentEnabled
: محیطisPassthroughControlEnabled
: این که آیا برنامه می تواند وضعیت عبور را کنترل کند یا نهisSpatialAudioEnabled
audio :
مسائل شناخته شده
- در حال حاضر برای استفاده از 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
در مانیفست خود به طور مستقیم به فضای کامل راه اندازی می شود ، فعالیت ها/برنامه ها در ابتدا در فضای خانه قبل از انتقال به فضای کامل باز می شوند. - GLTFS در ترکیبات حجم ممکن است در ابتدا در مکان اشتباه سوسو بزنند.
- استفاده از یک فضایی در پانلی که به طور قابل توجهی جابجا شده است ، محتوا را در جهت اشتباه سوق می دهد.