يشبه SubspaceModifier أداة تعديل Compose للعناصر القابلة للإنشاء
في Subspace. تتيح لك SubspaceModifier معالجة العناصر القابلة للإنشاء في مساحة ثلاثية الأبعاد، ما يساعدك في تحديد موضع عقد التنسيق ثلاثي الأبعاد وتدويرها وإضافة سلوكيات إليها.
التنسيق
تكون Subspace تلقائيًا محدودة بالمساحة المقترَحة لعرض أحد
التطبيقات. تُستخدَم هذه الحدود عند قياس تنسيق مكوّنات المساحة الفرعية
، على غرار الحدود في تنسيقات Compose ثنائية الأبعاد.
ملء الحدود
تجعل أدوات التعديل fillMaxSize وfillMaxWidth وfillMaxHeight و
fillMaxDepth المحتوى يملأ (جزئيًا) حدود العنصر الرئيسي.
تساعد أدوات تعديل الملء في تنسيق المحتوى في تطبيقك بشكل مستقل عن خصائص عرض جهاز 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.
نقل العناصر القابلة للإنشاء وتغيير حجمها
يمكنك السماح للمستخدمين بمعالجة موضع الكائنات وحجمها مباشرةً في مساحة ثلاثية الأبعاد. يمكنك إضافة أدوات التعديل هذه إلى المكوّنات الفردية (مثل SpatialPanel) والمساحات الفرعية ومكوّنات التنسيق المكاني (مثل SpatialRow أو SpatialColumn).
نقل العناصر
تتيح أدوات التعديل القابلة للنقل للمستخدمين الإمساك بعناصر المساحة الفرعية وتغيير موضعها.
transformingMovable: استخدِم أداة التعديل هذه للحركة العادية. تضبط أداة التعديل هذه العنصر ليكون تفاعليًا وقابلاً للنقل من قِبل المستخدم. يحسب النظام تلقائيًا الوضع الجديد والحجم الجديد ويطبّقهما استنادًا إلى بيانات أدخلها المستخدم.movable: استخدِم أداة التعديل هذه لتحديد سلوك الحركة المخصّص. على الرغم من أنّ النظام يوفّر إمكانية النقل، عليك استخدام حدثonMoveالمطلوب وتطبيق النتيجة. يفيد ذلك في تقييد الحركة أو إنشاء حركة مخصّصة في تطبيقك.
تغيير حجم العناصر
تتيح أدوات التعديل القابلة لتغيير الحجم للمستخدمين الإمساك بعناصر المساحة الفرعية وتغيير حجمها.
transformingResizable: استخدِم أداة التعديل هذه لتغيير الحجم الذي يديره النظام. تتعامل أداة التعديل هذه تلقائيًا مع إيماءة تغيير الحجم وتطبّق الأبعاد الجديدة التي يحدّدها المستخدم.resizable: استخدِم أداة التعديل هذه لمنطق تغيير الحجم المخصّص. على الرغم من أنّ النظام يوفّر إمكانية تغيير الحجم، عليك استخدام حدثonResizeوتطبيق النتيجة. تفيد أداة التعديل هذه في السيناريوهات المعقّدة، مثل الحفاظ على نسبة عرض إلى ارتفاع معيّنة أو إعادة ضبط التنسيق العام للمكوّنات الأخرى بعد انتهاء تغيير الحجم.
تغيير مظهر العناصر القابلة للإنشاء
alpha
تضبط أداة التعديل alpha مستوى عتامة العنصر وعناصره الثانوية،
حيث يمثّل 0f شفافًا بالكامل ويمثّل 1.0f معتمًا تمامًا.
scale
تغيّر أداة التعديل scale حجم محتويات العنصر القابل للإنشاء على طول المحاور
الأفقية والرأسية ومحور العمق.
الاختبار وإمكانية الوصول
semantics
تضيف أداة التعديل semantics دلالات إلى عقدة التنسيق، لاستخدامها في
الاختبار وإمكانية الوصول. راجِع الدلالات في Jetpack Compose و
SemanticsModifier.
testTag
أداة التعديل testTag هي اختصار لـ
SemanticsPropertyReceiver.testTag، ما يسمح لأُطر الاختبار بالعثور على
العنصر في الاختبارات.