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 الكامل بالعربي.