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

GestureDetector

التقاط إيماءات اللمس GestureDetector

GestureDetector يجعل أي ويدجت (حتى لو لا يستجيب للضغط أصلًا) قابلًا للتفاعل — نقرة، نقرتان، ضغط طويل.

بعكس أزرار Material (ElevatedButton...)، GestureDetector لا يضيف أي مظهر بصري (لا تموّج Ripple ولا حالة ضغط) — فقط يلتقط الإيماءة. لإضافة تأثير بصري بسيط، InkWell خيار أنسب فوق خلفية Material.

الصياغة

GestureDetector(
  onTap: () { },
  onLongPress: () { },
  child: Widget,
)

📄 مثال

GestureDetector(
  onTap: () => print('ضُغط على الصورة'),
  child: Image.network('https://picsum.photos/100'),
)

أهم المعاملات

المعاملالوظيفة
onTapنقرة واحدة
onDoubleTapنقرتان متتاليتان بسرعة
onLongPressضغط مطوّل
childالويدجت الذي يصبح قابلًا لالتقاط الإيماءات

💡 نصائح عملية

  • استخدم InkWell بدل GestureDetector فوق خلفية Material إن أردت تأثير التموّج البصري القياسي عند الضغط

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

  • توقّع ظهور تأثير بصري عند الضغط — GestureDetector صامت بصريًا تمامًا، الإيماءة تُلتقَط فقط بلا أي تغذية راجعة مرئية تلقائية

خصائص ذات صلة

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