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 است که به چارچوبهای تست اجازه میدهد عنصر را در تستها پیدا کنند.