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

📱 شرح Flutter

الويدجتس ذات الحالة

الدرس 9 من 25· ⏱ 1 دقائق قراءة

متى نحتاج الحالة؟

عندما تتغيّر الواجهة استجابةً لتفاعل المستخدم (عدّاد، نموذج، تبديل).

StatefulWidget

class Counter extends StatefulWidget {
  const Counter({super.key});
  @override
  State<Counter> createState() => _CounterState();
}

class _CounterState extends State<Counter> {
  int count = 0;             // الحالة

  @override
  Widget build(BuildContext context) {
    return Column(
      children: [
        Text("العدّ: $count"),
        ElevatedButton(
          onPressed: () {
            setState(() {   // يعيد بناء الواجهة
              count++;
            });
          },
          child: const Text("زِد"),
        ),
      ],
    );
  }
}

setState

⚠️ غيّر الحالة داخل setState فقط — وإلا لن تتحدّث الواجهة.

دورة حياة الحالة

  • initState(): عند الإنشاء (تهيئة).
  • build(): عند كل إعادة رسم.
  • dispose(): عند الإزالة (تنظيف).

Stateless مقابل Stateful

  • Stateless: لا يتغيّر بعد الرسم.
  • Stateful: يتغيّر عبر setState.

🎯 التالي: التخطيط بعمق.

هل كان هذا الدرس مفيدًا؟