GridView.builder() هو ويدجت (Widget) في Flutter يُستخدم لعرض شبكة (Grid) من العناصر بشكل ديناميكي، أي أنه يقوم ببناء العناصر عند الحاجة فقط (lazy loading)، وهذا يجعله مثاليًا عندما يكون لديك عدد كبير من العناصر أو عندما لا تعرف عددها مسبقًا.
✅ الفرق بين GridView.count() و GridView.builder()
الخاصية
GridView.count()
GridView.builder()
عدد العناصر
ثابت
غير معروف مسبقًا
الأداء
أقل كفاءة إذا كان عدد العناصر كبيرًا
أفضل أداء لأنه يبني العناصر عند الحاجة فقط
مناسبة لـ
عدد محدود من العناصر
عدد كبير أو غير معروف من العناصر
البناء
دفعة واحدة
حسب الحاجة (Lazy Loading)
🧱 البنية العامة (Syntax):
GridView.builder( gridDelegate:SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount:2, // عدد الأعمدة mainAxisSpacing:10.0, // المسافة الرأسية بين العناصر crossAxisSpacing:10.0, // المسافة الأفقية بين العناصر childAspectRatio:1.0, // نسبة العرض إلى الارتفاع ), itemCount: items.length, // عدد العناصر في الشبكة itemBuilder: (context, index) {returnSomeWidget(item: items[index]); // بناء عنصر معين },);
Dart
🔍 شرح الخصائص بالتفصيل:
1. gridDelegate ✅ (إجباري)
يحدد شكل وتخطيط الشبكة. أشهر الخيارات:
📌 SliverGridDelegateWithFixedCrossAxisCount
يحدد عدد الأعمدة بالضبط (crossAxisCount).
مناسب لشبكات منظمة ذات عدد أعمدة ثابت.
خصائصه:
الخاصية
شرح
crossAxisCount
عدد الأعمدة
mainAxisSpacing
المسافة بين العناصر عموديًا
crossAxisSpacing
المسافة بين العناصر أفقيًا
childAspectRatio
نسبة العرض إلى الطول (مثل 1.0 تعني مربع، 2.0 تعني ضعف العرض عن الطول)