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

ListView

قائمة قابلة للتمرير ListView

ListView يعرض عناصر مرتّبة عموديًا (أو أفقيًا) مع تمرير تلقائي — الأداة الأساسية لأي قائمة طويلة.

ListView العادي يبني كل العناصر دفعة واحدة، مناسب لقوائم قصيرة معروفة. للقوائم الطويلة أو غير محدودة الطول، استخدم ListView.builder الذي يبني العناصر عند الحاجة فقط (كفاءة ذاكرة وأداء أعلى بكثير).

الصياغة

ListView.builder(
  itemCount: int,
  itemBuilder: (context, index) => Widget,
)

📄 مثال

final items = List.generate(50, (i) => 'عنصر رقم $i');

ListView.builder(
  itemCount: items.length,
  itemBuilder: (context, index) {
    return ListTile(title: Text(items[index]));
  },
)

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

المعاملالوظيفة
itemCountعدد العناصر الكلي بالقائمة
itemBuilderدالة تبني ويدجت كل عنصر عند الحاجة فقط (lazy)
scrollDirectionاتجاه التمرير — عمودي افتراضيًا، أو Axis.horizontal

💡 نصائح عملية

  • استخدم ListView.builder دائمًا للقوائم الطويلة أو الديناميكية — يبني فقط العناصر الظاهرة على الشاشة فعليًا

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

  • استخدام ListView العادي (بقائمة children جاهزة) لقائمة طويلة جدًا — يبني كل العناصر فورًا حتى غير الظاهرة، يستهلك ذاكرة وأداء بلا داعٍ

خصائص ذات صلة

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