شرح إستخدام الStatefulWidget في Flutter وعمل تطبيق counter


شرح إستخدام الStatefulWidget في Flutter


شرح إستخدام الStatefulWidget في Flutter


يوجد نوعين في التطوير في بيئة العمل Flutter الاولى وهي StatefulWidget والاخرى StateLessWidget حيث ان الاولى اذا كان يوجد كود تريد تنفيذة في التصميم والاخرى اذا كان التصميم لا يحتوى على اي من الاكشن التي تتم وفي هذا المقال سوف نقوم بعمل معكم counter وسوف نشاهد الفرق , اولا وبكل بساطة عليك تصميم الشكل الذي ترغب به وهنا قمت بعمل التصميم عباره عن زر للزيادة و اخر للناقص وبينهم نص وهذا النص عباره عن القيمة .


هل تريد تطوير تطبيقات الجوال سواء كانت تعمل بنظام اندرويد او اي او اس بكود واحد , قديما كان هذا الامر صعب جدا ولكن مع تطور التكنولوجيا وظهور لغات برمجه مختلفه وتقنيات مختلفة اصبح هذا الامر طبيعي وسهل يوجد كثير من اللغات حاليا اصبحت. تطور لنا تطبيقات بكود واحد ليس فقط بتقنية فلاتر ولكن يوجد لغات اخرى ولكن هل سالت نفسك لماذا يتجه الاغلب الى flutter عكس غيرها رغم انه يوجد لغه اخرى تقوم بنفس الوظيفه قريبا. الامر بكل بساطه وهو ان تقنية فلاتر من تطوير العملاق جوجل وكما نعلم ان شركة google دائما تسعى الى تطوير لغات برمجه قويه جدا. و تسهل على المطورين العمل من خلال الاضافات والتحديثات التي يقومون بها باستمرار في المشاريع الخاصه بهم سواء في لغات البرمجه او في اي شيء اخر. ايضا تقنية فلاتر لغه بسيطه جدا وهي تعمل بلغه تسمى دارت. 


كود عمل عداد في فلاتر


قم بعمل StatefulWidget واسفل CounterState قم بعمل متغير من نوع int ويبدء من القيمة 1 , وايضا نقوم بعمل initState للمتغيرات وبداخل كل عملية نضع setState والعملية وهي تكون عباره عن قيمة الcounter سواء كانت للزيادة ++ او للنقصان -- وبالنسبة للنص سوف نجعله $counter لكي يظهر قيمة الرقم بدلا من القيمة الثابته ويكون متغير .


Counter.dart


class Counter extends StatefulWidget {

  @override
  _CounterState createState() => _CounterState();

}

class _CounterState extends State<Counter> {
  int counter = 1;

  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Counter'),
      ),
      body: Center(
        child: Row(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Padding(
              padding: const EdgeInsets.symmetric(horizontal: 8.0),
              child: TextButton(onPressed: () {
                setState(() {
                  counter--;
                });
              }, child: Text('minus')),
            ),
            Text(
              '$counter',
              style: TextStyle(fontSize: 22, fontWeight: FontWeight.bold),
            ),
            Padding(
              padding: const EdgeInsets.symmetric(horizontal: 8.0),
              child: TextButton(onPressed: () {
                setState(() {
                  counter++;
                });
              }, child: Text('Plus')),
            ),
          ],
        ),
      ),
    );
  }
}


في النهايه نتمنى ان تكون المقالة نالت على رضاكم ولمزيد من المقالات في البرمجة يمكنكم تصفح الموقع لمشاهدة باقي المقالات .



تعليقات