لضبط سلوك الحاوية 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: لعكس اتجاهRowColumn: يضبط المحور الرئيسي ليكون عموديًا من الأعلى إلى الأسفل.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. لا تتوفّر مساحة كافية في السطر الحالي، لذا تم وضع العنصر الفرعي 3 في سطر جديد.
إضافة فجوات بين العناصر
أضِف فجوات بين الصفوف والأعمدة باستخدام rowGap وcolumnGap. ويكون ذلك مفيدًا
لتجنُّب إضافة معدِّلات المسافات إلى العناصر الفرعية.
|
|
|
تضيف مسافة عمودية بين العناصر والسطور. |
تضيف مساحة أفقية بين العناصر والخطوط. |
|