تخطَّ إلى المحتوى

Expanded

توزيع المساحة المتبقية Expanded

Expanded يجعل ابنًا داخل Row أو Column يأخذ كل المساحة المتبقية المتاحة — الحل القياسي لمشكلة overflow.

بدون Expanded، عناصر Row/Column تأخذ حجمها الطبيعي فقط وقد تفيض عن المساحة المتاحة. flex يتحكّم بنسبة توزيع المساحة بين أكثر من Expanded بنفس الأب.

الصياغة

Row(
  children: [
    Widget, // حجم ثابت
    Expanded(child: Widget), // يأخذ الباقي
  ],
)

📄 مثال

Row(
  children: [
    Icon(Icons.person),
    SizedBox(width: 8),
    Expanded(
      child: Text(
        'نص طويل جدًا قد يفيض بدون Expanded حوله بهذا المكان بالضبط',
        overflow: TextOverflow.ellipsis,
      ),
    ),
  ],
)

أهم المعاملات

المعاملالوظيفة
flexنسبة توزيع المساحة بين أكثر من Expanded بنفس الأب — افتراضي 1
childالويدجت الذي يأخذ المساحة المتبقية

💡 نصائح عملية

  • استخدم Flexible بدل Expanded إن أردت السماح للابن بأخذ أقل من المساحة المتاحة عند الحاجة

⚠️ أخطاء شائعة

  • استخدام Expanded خارج Row/Column/Flex مباشرة — يعمل فقط كابن مباشر لويدجت من عائلة Flex

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار FLUTTER الكامل بالعربي.