Jetpack Compose برای XR
آخرین به روز رسانی | انتشار پایدار | کاندید را آزاد کنید | نسخه بتا | انتشار آلفا |
---|---|---|---|---|
12 فوریه 2025 | - | - | - | 1.0.0-alpha02 |
اعلام وابستگی ها
برای افزودن وابستگی به XR compose، باید مخزن Google Maven را به پروژه خود اضافه کنید. برای اطلاعات بیشتر، مخزن Maven Google را بخوانید.
وابستگیهای مصنوعات مورد نیاز خود را در فایل build.gradle
برای برنامه یا ماژول خود اضافه کنید:
شیار
dependencies { implementation "androidx.xr.compose:compose:1.0.0-alpha01" // Use to write unit tests testImplementation "androidx.xr.compose:compose-testing:1.0.0-alpha01" }
کاتلین
dependencies { implementation("androidx.xr.compose:compose:1.0.0-alpha01") // Use to write unit tests testImplementation("androidx.xr.compose:compose-testing:1.0.0-alpha01") }
برای اطلاعات بیشتر درباره وابستگیها، به افزودن وابستگیهای ساخت نگاه کنید.
بازخورد
بازخورد شما به بهتر شدن Jetpack کمک می کند. اگر مسائل جدیدی کشف کردید یا ایده هایی برای بهبود این کتابخانه دارید، به ما اطلاع دهید. لطفاً قبل از ایجاد کتابخانه جدید، به مسائل موجود در این کتابخانه نگاهی بیندازید. با کلیک کردن روی دکمه ستاره می توانید رای خود را به یک موضوع موجود اضافه کنید.
برای اطلاعات بیشتر به مستندات ردیاب مشکل مراجعه کنید.
نسخه 1.0
نسخه 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 در پانلی که به طور قابل توجهی جابجا شده است، محتوا را در جهت اشتباه سوق می دهد.