تم إنشاء c4a.dev لمساعدتك على التركيز أثناء مُشاهدة الكورسات والإبتعاد عن إزعاج اليوتيوب
كيفية الشراء من الموقع

منطقة إعلانية

يُمكننا وضع إعلانك هنا 🧡 ويُمكنك التواصل معنا عن طريق صفحة الفيس بوك

سعر الإعلان 50$ فى الشهر

dartpad.dev

#10 Flutter & dart Todo App

هدفى الأساسى فى هذا الكورس ان تتعلم :

  1. تصميم التطبيق (flutter widgets) ✔
  2. تعلم لغة dart ✔
  3. تتعلم مهارة الاستماع فى اللغة الانجليزية ✔

وبناءاً على ذلك سيتم عمل هذا المشروع

#10.1 Dart Todo App (design)

Color.fromRGBO(58, 66, 86, 0.7)
Color.fromRGBO(209, 224, 224, 0.2),
FractionallySizedBox(
  widthFactor: 0.9,
  child: Container() ,
)

Download files

#10.2 Add task title (using class)

...AllTasks.map((item) => Todecard( معلومات )

Download files

#10.3 if else الطريقة المُختصرة

if else الطريقة المُختصرة

condition ? If-True : If-False

Download files

#10.4 Flutter showModalBottomSheet شرح

المصدر

Download files

#10.5 Handle changes to a text field

1- Create a TextEditingController.final myController = TextEditingController();

myController عبارة عن text inside textfield + حاجات كتير

2- Connect the TextEditingController to a text field.TextField( controller: myController,),
3- Create a function to do what you want.void _printLatestValue() {
   print('Second text field: ${myController.text}');
}
4- Listen to the controller for changes.@override
void initState() {
   super.initState();
   // Start listening to changes.
   myController.addListener(_printLatestValue);
}
⭐ 5- stop listening when the widget is deleted.@override
void dispose() {
   emailController.dispose();
   PasswordController.dispose();
   super.dispose();
}

المصدر

Download files

#10.6 Add New Task

Download files

#10.7 showDialog

Dialog widget
Dialog widget
Widgetpropertiesالمصدر
Dialog(To show dialog
  • shape → ShapeBorder
  • child → Widget
  • backgroundColor → Color

Download files

#10.8 Counter

Download files

#10.9 Task Solution

Download files

#10.10 scrollable list of widgets

1- عند استخدام عدد مُحدد من الـ widgetsListView(
padding: const EdgeInsets.all(8),
children: [ ],
)
2- عندما نقوم بتكرار عدد غير معلوم من الــ widgetsListView.builder(
padding: const EdgeInsets.all(8),
itemCount: mylist.length,
itemBuilder: (BuildContext context, int index) {
return Container( );
}
)

هذه الـ widgets يجب ان تكون بداخل ()container أو ()sizedBox لأن هذه الـ widgets تحتوى على خاصية الـ height

المصدر

Download files

#10.11 scrollable list of Tasks

Download files

#10.12 Change Task status

Download files

#10.13 Delete Tasks

Download files

#10.14 Task solution

Download files

#10.15 ترويق العمل أهم من العمل

Download files

😡
انت مشغل الـ AdBlock !!

ياريت تقفله لوسمحت 😊 😊

تنبيه هام ✋

إذا كانت الإعلانات مزعجة بالنسبة لك، فيُمكنك التبرع ب50$ وسيتم إيقاف الإعلانات لمدة شهر لجميع زوار الموقع 🧡 ويُمكنك التواصل معنا عن طريق صفحة الفيس بوك