يشبه 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
، ما يتيح لأُطر الاختبار العثور على العنصر في الاختبارات.