مُعدِّلات المساحات الفرعية

يشبه SubspaceModifier معدِّل Compose للعناصر القابلة للإنشاء في Subspace. تتيح لك SubspaceModifier معالجة العناصر القابلة للإنشاء في مساحة ثلاثية الأبعاد، ما يساعدك في تحديد موضع عقد التنسيق ثلاثي الأبعاد وتدويرها وإضافة سلوكيات إليها.

التنسيق

تكون Subspace تلقائيًا محاطة بالمساحة المقترَحة لعرض تطبيق. تُستخدَم هذه الحدود عند قياس تصميم مكوّنات المساحة الفرعية، على غرار الحدود في تصاميم Compose الثنائية الأبعاد.

حدود التعبئة

تؤدي المعدِّلات fillMaxSize وfillMaxWidth وfillMaxHeight وfillMaxDepth إلى أن يملأ المحتوى حدود العنصر الأصل (جزئيًا). يساعد استخدام معدِّلات التعبئة في تصميم محتوى تطبيقك بشكل مستقل عن خصائص شاشة جهاز XR.

ضبط الحجم والحجم المطلوب

تحدّد المعدِّلات size وwidth وheight وdepth الحجم المفضّل للمحتوى. لتحديد الحجم الدقيق للمحتوى، استخدِم requiredSize وrequiredWidth وrequiredHeight وrequiredDepth. يجب تحديد هذه الوحدات في dp، ولاستخدام Meter.toDp() للتحويل من الأمتار إلى وحدات مستقلة الكثافة.

عناصر قابلة للإنشاء لتحديد الموضع

offset

ينقل المعدِّل offset العنصر القابل للإنشاء في المساحة الثلاثية الأبعاد على طول المحاور x وy وz. يجب تحديد هذه الوحدات في dp، وللتحويل من الأمتار إلى وحدات مستقلة الكثافة، استخدِم Meter.toDp().

rotate

يدير المعدِّل rotate العنصر القابل للإنشاء المحدّد في المساحة. يمكنك تحديد اتجاه الدوران ومقدار الدوران بطرق مختلفة:

  • باستخدام الميل والانحراف والدوران، التي تحدّد الدوران حول المحاور x وy وz على التوالي،
  • باستخدام axisAngle، وهو Vector3 يمثّل محور الدوران، ومقدار الدرجات التي يجب الدوران حولها،
  • استخدام Quaternion يمثّل التدوير

تغيير مظهر العناصر القابلة للإنشاء

alpha

يضبط المعدِّل alpha مستوى التعتيم للعنصر وعناصره الثانوية، حيث يمثّل 0f الشفافية الكاملة ويمثّل 1.0f التعتيم الكامل.

scale

يؤدي المعدِّل scale إلى تغيير حجم محتوى العنصر القابل للإنشاء على المحاور الأفقية والعمودية والعمق.

إضافة سلوكيات إلى العناصر القابلة للإنشاء

resizable

عند تفعيل المعدِّل resizable، ستظهر عناصر تحكّم في واجهة المستخدم قابلة للسحب تتيح للمستخدم تغيير حجم العنصر. يشبه ذلك استخدام ResizableComponent على Entity.

movable

عند تفعيل المعدِّل movable، ستتم إضافة عناصر تحكُّم في واجهة المستخدم إلى المكوّن، ما يتيح للمستخدم نقل العنصر في المساحة الثلاثية الأبعاد. يشبه ذلك استخدام MovableComponent على Entity.

يمكن لعقدة التنسيق movable أن تحدّد اختياريًا أنواع الطائرات التي يجب أن ترتبط بها عند نقلها. على سبيل المثال، لإنشاء SpatialPanel يتم محاذاته مع الجداول، اتّبِع الخطوات التالية:

SpatialPanel(
  modifier.movable(anchorPlaneSemantics = setOf(PlaneSemantic.TABLE))
) {
  // This panel snaps to available planes that are detected as a TABLE.
}

يتطلّب المحاذاة مع المستويات منح android.permission.SCENE_UNDERSTANDING_COARSE إذن التشغيل لتطبيقك.

الاختبار وإمكانية الوصول

semantics

يضيف المعدِّل semantics دلالات إلى عقدة التنسيق، وذلك لاستخدامها في الاختبار وإمكانية الوصول. راجِع الدلالات في Jetpack Compose وSemanticsModifier.

testTag

المعدِّل testTag هو اختصار للرمز SemanticsPropertyReceiver.testTag، ما يتيح لأُطر الاختبار العثور على العنصر في الاختبارات.