Jetpack Compose برای XR

طرح‌بندی‌های رابط کاربری فضایی را به‌طور اعلامی بسازید که از قابلیت‌های فضایی Android XR بهره می‌برد.
آخرین به روز رسانی انتشار پایدار کاندید را آزاد کنید نسخه بتا انتشار آلفا
12 دسامبر 2024 - - - 1.0.0-alpha01

اعلام وابستگی ها

برای افزودن وابستگی به 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-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 در پانلی که به طور قابل توجهی جابجا شده است، محتوا را در جهت اشتباه سوق می دهد.