لضبط سلوك الحاوية FlexBox، أنشئ حظر FlexBoxConfig وقدِّمه باستخدام المَعلمة config.
FlexBox( config = { direction = FlexDirection.Column wrap = FlexWrap.Wrap alignItems = FlexAlignItems.Center alignContent = FlexAlignContent.SpaceAround justifyContent = FlexJustifyContent.Center gap(16.dp) } ) { // child items }
استخدِم FlexBoxConfig لتحديد اتجاه التنسيق وسلوك الالتفاف والمحاذاة والفجوات بين العناصر.
اتجاه التنسيق
تحدّد السمة direction المحور الرئيسي الذي يحدّد اتجاه ترتيب العناصر.
Row(القيمة التلقائية): يضبط المحور الرئيسي ليكون أفقيًا. في اللغات التي تُكتب من اليسار إلى اليمين، سيكون الترتيب من اليسار إلى اليمين، والعكس في اللغات التي تُكتب من اليمين إلى اليسار.RowReverse: لعكس اتجاهRow-
Column: يضبط المحور الرئيسي ليكون عموديًا من الأعلى إلى الأسفل. ColumnReverse: لعكس اتجاهColumn
محاذاة العناصر وتوزيع المساحة الإضافية
توضّح الأقسام التالية كيفية محاذاة العناصر وتوزيع المساحة الإضافية على المحورَين الرئيسي والفرعي.
على طول المحور الرئيسي
استخدِم justifyContent لتوزيع العناصر على طول المحور الرئيسي. يوضّح الجدول التالي السلوك عند ضبط الاتجاه على Row.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
على طول المحور العرضي
استخدِم alignItems لمحاذاة العناصر على طول المحور العرضي ضمن سطر واحد. يمكن إلغاء هذا السلوك في عناصر فردية باستخدام المعدِّل alignSelf.
تعرض الصور التالية السلوك عند ضبط الاتجاه على Row:
|
|
|
|
|
|
|
|
|
|
|
استخدِم alignContent لمحاذاة الأسطر مع المحور العرضي وتوزيع المساحة الإضافية بين الأسطر. لا تنطبق هذه السمة إلا عندما تكون هناك أسطر متعددة (تكون ميزة الالتفاف مفعّلة). تعرض الصور التالية السلوك عند ضبط الاتجاه على Row:
|
|
|
|
|
|
|
|
|
|
|
|
|
تضمين العناصر
تتيح عملية اللفّ أن تصبح الحاوية FlexBox متعددة الأسطر، ما يؤدي إلى نقل العناصر التي لا تتسع إلى صف أو عمود جديد على طول المحور العرضي. ضبط سلوك الالتفاف باستخدام wrap
قيمة |
مثال باستخدام الاتجاه |
|
|
|
|
|
|
يوضّح المثال التالي طريقة عمل خوارزمية التغليف FlexBox. تبلغ الحاوية FlexBox الحجم الرئيسي 100dp، مع ضبط wrap على FlexWrap.Wrap وفجوة تبلغ 8dp. يتضمّن هذا المثال ثلاثة عناصر تتضمّن basis 20dp و40dp و50dp على التوالي.
تتوفّر 100dp مساحة في الصف. الطفل 1 هو 20dp.
تتوفّر مساحة، لذا يتم وضع "الطفل 1" في قائمة الانتظار.
FlexBoxتتوفّر 80dp مساحة في الصف. الفجوة هي 8dp. الطفل 2 هو
40dp. المساحة المطلوبة هي 48dp. تتوفّر مساحة، لذا يتم وضع الفجوة و"الطفل 2" في السطر.
FlexBox بعد العنصر الأولتتوفّر 32dp مساحة في الصف. الفجوة هي 8dp. الطفل 3 هو
50dp. المساحة المطلوبة هي 58dp. لا تتوفّر مساحة كافية في السطر الحالي، لذا تم وضع Child 3 في سطر جديد.
إضافة فجوات بين العناصر
أضِف فجوات بين الصفوف والأعمدة باستخدام rowGap وcolumnGap. ويكون ذلك مفيدًا
لتجنُّب إضافة معدِّلات المسافات إلى العناصر الفرعية.
|
|
|
تضيف مساحة عمودية بين العناصر والأسطر. |
تضيف مساحة أفقية بين العناصر والخطوط. |
|