TextField
حقل إدخال نصي TextField
TextField يتيح للمستخدم كتابة نص — الأداة الأساسية لأي نموذج (تسجيل دخول، بحث، تعليق).
onChanged يُستدعى مع كل حرف يُكتب، بينما controller يمنحك وصولًا كاملًا للقراءة والتعديل والاستماع للتغييرات بأي وقت — الأسلوب الموصى به لمعظم الحالات.
الصياغة
TextField(
controller: TextEditingController,
decoration: InputDecoration(labelText: 'التسمية'),
onChanged: (value) { },
)📄 مثال
final controller = TextEditingController();
TextField(
controller: controller,
decoration: InputDecoration(
labelText: 'البريد الإلكتروني',
border: OutlineInputBorder(),
),
keyboardType: TextInputType.emailAddress,
)أهم المعاملات
| المعامل | الوظيفة |
|---|---|
| controller | يمنحك قراءة/تعديل النص برمجيًا (controller.text) |
| decoration | التسمية والحدود ونص التلميح عبر InputDecoration |
| obscureText | true لإخفاء النص المكتوب — لحقول كلمة المرور |
| keyboardType | نوع لوحة المفاتيح المناسبة (بريد، رقم، الخ) |
💡 نصائح عملية
- تخلّص من الـ controller دائمًا بـ dispose() داخل StatefulWidget لتفادي تسريب الذاكرة
⚠️ أخطاء شائعة
- نسيان controller.dispose() بدالة dispose() الخاصة بالويدجت — تسريب ذاكرة تراكمي
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار FLUTTER الكامل بالعربي.