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

أجهزة XR المشمولة
تساعدك هذه الإرشادات في إنشاء تجارب لهذه الأنواع من أجهزة XR.
سماعات الرأس بنظام الواقع الممتد
نظارات سلكية بنظام الواقع الممتد

يشبه 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).

نقل العناصر

عندما تكون أداة التعديل movable متاحة ومفعَّلة، ستظهر عناصر التحكّم في واجهة المستخدم القابلة للسحب التي تسمح للمستخدم بنقل العنصر في مساحة ثلاثية الأبعاد. يتم تحديد السلوك المحدّد لهذه الحركة من خلال movePolicy المقدَّمة:

  • MovePolicy.default: يتعامل النظام مع الحركة بالكامل ويحسب تلقائيًا الوضع الجديد والحجم ويطبّقهما استنادًا إلى إدخال المستخدم.
  • MovePolicy.custom: يحسب النظام الوضع المستهدَف استنادًا إلى الإدخال، ولكن لا يطبّقه تلقائيًا على العنصر المرتبط. يكون هذا مفيدًا لتقييد الحركة أو إنشاء حركة مخصّصة في تطبيقك.

تغيير حجم العناصر

عندما تكون أداة التعديل resizable() متاحة ومفعَّلة، ستظهر عناصر التحكّم في واجهة المستخدم التي تسمح للمستخدم بتغيير حجم العنصر في مساحة ثلاثية الأبعاد. يتم تحديد السلوك المحدّد لتغيير الحجم من خلال resizePolicy المقدَّمة:

  • ResizePolicy.default(): يتعامل النظام تلقائيًا مع إيماءة تغيير الحجم ويطبّق الأبعاد الجديدة على المحتوى.
  • ResizePolicy.custom(): يقدّم النظام SpatialResizeEvent ولا يطبّق تلقائيًا نتيجة تغيير الحجم على العنصر المرتبط.

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

alpha

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

scale

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

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

semantics

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

testTag

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