SubspaceModifier شبیه به اصلاحکننده Compose برای composableها
در Subspace است. SubspaceModifier به شما امکان میدهد تا ترکیبپذیرها را در فضای سهبعدی دستکاری کنید و به شما کمک میکند تا گرههای چیدمان سهبعدی را موقعیتیابی کنید، بچرخانید، و به آنها رفتار اضافه کنید.
چیدمان
بهطور پیشفرض، Subspace به فضای توصیهشده برای مشاهده برنامه محدود میشود. این مرزها هنگام اندازهگیری چیدمان مؤلفههای زیرفضای شما استفاده میشوند، مشابه مرزها در چیدمانهای Compose دوبعدی.
پر کردن مرزها
اصلاحکنندههای fillMaxSize، fillMaxWidth، fillMaxHeight، و
fillMaxDepth باعث میشوند محتوا (تاحدی) مرزهای والد خود را پر کند.
استفاده از اصلاحکنندههای پر کردن به برنامه شما کمک میکند محتوا را مستقل از ویژگیهای نمایشگر دستگاه XR چیدمان کند.
تنظیم اندازه و اندازه لازم
اصلاحکنندههای size، width، height، و depth
اندازه ترجیحی محتوا را اعلام میکنند. برای اعلام اندازه دقیق محتوا، از
requiredSize، requiredWidth،
requiredHeight، و requiredDepth استفاده کنید. این واحدها باید در dp مشخص شوند؛ برای تبدیل متر به dp، از Meter.toDp() استفاده کنید.
جایگاه composables
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) اضافه کنید.
انتقال عناصر
وقتی اصلاحکننده movable وجود داشته باشد و فعال باشد، کنترلهای میانای کاربر کشیدنی نشان داده میشود که به کاربر اجازه میدهد عنصر را در فضای سهبعدی جابهجا کند. رفتار خاص این حرکت توسط movePolicy ارائهشده تعریف میشود:
MovePolicy.default: سیستم حرکت را بهطور کامل مدیریت میکند و بهطور خودکار حالت و مقیاس جدید را براساس ورودی کاربر محاسبه و اعمال میکند.MovePolicy.custom: سیستم «ژست» هدف را براساس ورودی محاسبه میکند، اما آن را بهطور خودکار برای عنصر مرتبط اعمال نمیکند. این ویژگی برای محدود کردن حرکت یا ایجاد حرکت سفارشی در برنامه شما مفید است.
تغییر اندازه عناصر
وقتی اصلاحکننده resizable() وجود داشته باشد و فعال باشد، کنترلهای میانای کاربر
نشان داده خواهد شد که به کاربر اجازه میدهد اندازه عنصر را در فضای سهبعدی تغییر دهد. رفتار خاص تغییر اندازه با resizePolicy ارائهشده تعریف میشود:
ResizePolicy.default(): سیستم بهطور خودکار اشاره تغییر اندازه را مدیریت میکند و ابعاد جدید را روی محتوا اعمال میکند.ResizePolicy.custom(): سیستمSpatialResizeEventرا ارائه میدهد و بهطور خودکار نتیجه تغییر اندازه را در عنصر مربوطه اعمال نمیکند.
تغییر ظاهر composableها
alpha
اصلاحکننده alpha میزان کدر بودن عنصر و فرزندان آن را تنظیم میکند،
که در آن 0f نشاندهنده کاملاً شفاف و 1.0f نشاندهنده کاملاً کدر است.
scale
اصلاحکننده scale محتوای ترکیبپذیر را در امتداد محورهای افقی، عمودی، و عمق مقیاسبندی میکند.
آزمایش و دسترسپذیری
semantics
اصلاحکننده semantics معناشناسی را به گره چیدمان اضافه میکند تا در
آزمایش و دسترسپذیری استفاده شود. معناشناسی در Jetpack Compose و
SemanticsModifier را ببینید.
testTag
اصلاحکننده testTag مخفف
SemanticsPropertyReceiver.testTag است که به چارچوبهای آزمایشی اجازه میدهد
عنصر را در آزمایشها پیدا کنند.