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

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
obscureTexttrue لإخفاء النص المكتوب — لحقول كلمة المرور
keyboardTypeنوع لوحة المفاتيح المناسبة (بريد، رقم، الخ)

💡 نصائح عملية

  • تخلّص من الـ controller دائمًا بـ dispose() داخل StatefulWidget لتفادي تسريب الذاكرة

⚠️ أخطاء شائعة

  • نسيان controller.dispose() بدالة dispose() الخاصة بالويدجت — تسريب ذاكرة تراكمي

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار FLUTTER الكامل بالعربي.