درک اصلاح‌کننده‌های زیرفضا

دستگاه‌های XR قابل اجرا
این راهنما به شما کمک می‌کند تا برای این نوع دستگاه‌های XR تجربه ایجاد کنید.
هدست‌های XR
عینک‌های XR سیمی

SubspaceModifier مشابه Compose modifier برای Composableها در Subspace است. SubspaceModifier به شما امکان می‌دهد Composableها را در فضای سه‌بعدی دستکاری کنید و به شما در موقعیت‌یابی، چرخش و افزودن رفتارها به گره‌های طرح‌بندی سه‌بعدی کمک می‌کند.

طرح بندی

به طور پیش‌فرض، یک Subspace توسط فضای توصیه‌شده برای مشاهده یک برنامه محدود می‌شود. این مرزها هنگام اندازه‌گیری طرح‌بندی اجزای Subspace شما، مشابه مرزها در طرح‌بندی‌های Compose دوبعدی ، استفاده می‌شوند.

مرزها را پر کنید

اصلاح‌کننده‌های fillMaxSize ، fillMaxWidth ، fillMaxHeight و fillMaxDepth باعث می‌شوند محتوا (تا حدی) مرزهای والد خود را پر کند. استفاده از اصلاح‌کننده‌های fill به برنامه شما کمک می‌کند تا محتوایی را که مستقل از ویژگی‌های نمایشگر دستگاه XR است، طرح‌بندی کند.

اندازه و اندازه مورد نیاز را تنظیم کنید

اصلاح‌کننده‌های size ، width ، height و depth اندازه ترجیحی محتوا را اعلام می‌کنند. برای اعلام اندازه دقیق محتوا، requiredSize ، requiredWidth ، requiredHeight و requiredDepth استفاده کنید. این واحدها باید در dp مشخص شوند؛ برای تبدیل از متر به dp، از Meter.toDp() استفاده کنید.

موقعیت‌های قابل ترکیب

offset

اصلاح‌کننده‌ی offset ، عنصر ترکیب‌پذیر را در فضای سه‌بعدی در امتداد محورهای x ، y و z حرکت می‌دهد. این واحدها باید در dp مشخص شوند؛ برای تبدیل از متر به dp، از Meter.toDp() استفاده کنید.

rotate

اصلاحگر rotate عنصر ترکیب‌پذیر داده شده را در فضا می‌چرخاند. می‌توانید جهت و میزان چرخش را به روش‌های مختلف مشخص کنید:

  • با استفاده از پیچ، یاو و رول که به ترتیب چرخش حول محورهای x ، y و z را مشخص می‌کنند،
  • با استفاده از axisAngle که یک Vector3 است و محور چرخش را نشان می‌دهد، و میزان درجه‌ای که باید حول آن بچرخد،
  • با استفاده از یک Quaternion که چرخش را نشان می‌دهد.

rotateToLookAtUser

اصلاح‌کننده rotateToLookAtUser به طور مداوم محتوا را می‌چرخاند تا همیشه رو به کاربر باشد. همچنین می‌توانید از این اصلاح‌کننده برای دستیابی به جلوه "بیلبورد" استفاده کنید که در آن محتوا در محور Y رو به کاربر می‌چرخد و در عین حال عمودی و هم‌تراز با جاذبه باقی می‌ماند. برای انجام این کار، اصلاح‌کننده rotateToLookAtUser را با اصلاح‌کننده gravityAligned ترکیب کنید.

جابجایی و تغییر اندازه با composables

به کاربران اجازه دهید موقعیت و اندازه اشیاء را در فضای سه‌بعدی مستقیماً دستکاری کنند. می‌توانید این اصلاح‌کننده‌ها را به اجزای منفرد (مانند SpatialPanel )، زیرفضاها و اجزای طرح‌بندی فضایی (مانند SpatialRow یا SpatialColumn ) اضافه کنید.

عناصر را جابجا کنید

اصلاح‌کننده‌های متحرک به کاربران اجازه می‌دهند عناصر زیرفضا را گرفته و تغییر مکان دهند.

  • transformingMovable : از این اصلاح‌کننده برای حرکت استاندارد استفاده کنید. این اصلاح‌کننده عنصر را طوری پیکربندی می‌کند که توسط کاربر قابل تعامل و حرکت باشد. سیستم به طور خودکار حالت و مقیاس جدید را بر اساس ورودی کاربر محاسبه و اعمال می‌کند.

  • movable : از این اصلاح‌کننده برای تعریف رفتار حرکتی سفارشی استفاده کنید. در حالی که سیستم، قابلیت حرکت را فراهم می‌کند، شما باید از رویداد onMove مورد نیاز استفاده کرده و نتیجه را اعمال کنید. این برای محدود کردن حرکت یا ایجاد حرکت سفارشی در برنامه شما مفید است.

تغییر اندازه عناصر

اصلاح‌کننده‌های قابل تغییر اندازه به کاربران اجازه می‌دهند عناصر زیرفضا را بگیرند و تغییر اندازه دهند.

  • transformingResizable : از این اصلاح‌کننده برای تغییر اندازه تحت مدیریت سیستم استفاده کنید. این اصلاح‌کننده به طور خودکار ژست تغییر اندازه را مدیریت می‌کند و ابعاد جدیدی را که کاربر مشخص می‌کند اعمال می‌کند.

  • resizable : از این اصلاح‌کننده برای منطق تغییر اندازه سفارشی استفاده کنید. در حالی که سیستم، امکان تغییر اندازه را فراهم می‌کند، شما باید از رویداد onResize استفاده کرده و نتیجه را اعمال کنید. این اصلاح‌کننده برای سناریوهای پیچیده، مانند حفظ نسبت ابعاد خاص یا تنظیم مجدد طرح کلی سایر اجزا پس از پایان تغییر اندازه، مفید است.

ظاهر ترکیبات را تغییر دهید

alpha

اصلاح‌کننده alpha میزان شفافیت عنصر و فرزندانش را تنظیم می‌کند، که در آن 0f نشان دهنده شفافیت کامل و 1.0f نشان دهنده مات بودن کامل است.

scale

اصلاح‌کننده‌ی scale ، محتوای کامپوننت را در امتداد محورهای افقی، عمودی و عمق مقیاس‌بندی می‌کند.

آزمایش و دسترسی‌پذیری

semantics

اصلاح‌کننده‌ی semantics ، برای استفاده در آزمایش و دسترسی‌پذیری، به گره‌ی layout، semantics اضافه می‌کند. به Semantics در Jetpack Compose و SemanticsModifier مراجعه کنید.

testTag

اصلاح‌کننده testTag مخفف SemanticsPropertyReceiver.testTag است که به چارچوب‌های تست اجازه می‌دهد عنصر را در تست‌ها پیدا کنند.