شرح Flutter Context ببساطة للمبتدئين

x32x01
  • بواسطة x32x01 ||
لو بدأت Flutter قريب، فغالبًا أكتر كلمة شوفتها ودوّختك هي context 🤔
المشكلة مش في الكلمة… المشكلة إن ناس كتير بتستخدمها من غير ما تفهمها.
ببساطة شديدة: الـ Context هو عنوان الـ Widget جوه شجرة الـ Widgets 🌳

🏢 تشبيه بسيط يخليك تفهم Context فورًا​

تخيّل إن التطبيق بتاعك عمارة كبيرة 🏢 كل Widget شقة جوه العمارة.
الـ Context بيقول لـ Flutter:
📍 أنا الـ Widget اللي في الدور التالت، الشقة اللي على اليمين
من غير العنوان ده، Flutter مش عارف إنت فين ولا يجيبلك حاجة.



🎯 ليه لازم تفهم الـ Context صح؟​

🎨 الوصول للـ Theme وحجم الشاشة​

لو محتاج:
  • لون الثيم
  • حجم الشاشة
  • اتجاه الجهاز
كل ده بيتم عن طريق context 👇
Code:
final width = MediaQuery.of(context).size.width;
final color = Theme.of(context).primaryColor;
من غير Context؟
Flutter مش هيعرف يسأل “الأب الكبير” 🧠



🧭 الـ Navigation بين الصفحات​

وأنت بتتنقل من شاشة للتانية، Flutter لازم يعرف إنت واقف فين حاليًا.
وده مش هيحصل غير بالـ Context 👇
Code:
Navigator.of(context).push(
  MaterialPageRoute(builder: (_) => DetailsPage()),
);
📌 من غير Context = مفيش تنقّل.



❌ أشهر خطأ: Context مش موجود​

الـ Error الشهير اللي كلنا شفناه 😅 Looking up a deactivated widget's ancestor
السبب غالبًا:
  • بتستخدم Context
  • قبل ما الـ Widget يتبني
  • أو بعد ما يتشال من الشجرة
يعني إنت بتنادي على عنوان بيت لسه متبناش 🏗️



⚠️ مثال على استخدام غلط للـ Context​

Java:
@override
void initState() {
  super.initState();
  Navigator.of(context).push(...); // ❌ غلط
}
ليه غلط؟
علشان الـ Context هنا لسه مش جاهز.



✅ الحل الصح​

استنى لما الـ Widget يتبني:
Java:
@override
void didChangeDependencies() {
  super.didChangeDependencies();
  // هنا context آمن
}
أو:
Code:
WidgetsBinding.instance.addPostFrameCallback((_) {
  Navigator.of(context).push(...);
});



🧠 الخلاصة اللي هتريح دماغك​

  • Context مش object عادي
  • Context = مكانك في شجرة الـ Widgets
  • أي طلب:
    • Theme
    • MediaQuery
    • Navigator
      محتاج Context صح وفي الوقت الصح
📌 الدرس المهم: قبل ما تطلب حاجة، اسأل نفسك: أنا واقف فين؟
البرمجة مش كود وبس… دي فهم وترتيب أفكار 👌
 
التعديل الأخير:
المواضيع ذات الصلة
x32x01
الردود
0
المشاهدات
1K
x32x01
x32x01
x32x01
الردود
0
المشاهدات
985
x32x01
x32x01
x32x01
الردود
0
المشاهدات
854
x32x01
x32x01
x32x01
الردود
0
المشاهدات
733
x32x01
x32x01
x32x01
الردود
0
المشاهدات
852
x32x01
x32x01
الدخول أو التسجيل السريع
نسيت كلمة مرورك؟
إحصائيات المنتدى
المواضيع
2,509
المشاركات
2,702
أعضاء أكتب كود
577
أخر عضو
سراب
عودة
أعلى