TouchableWithoutFeedback في React Native

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث

لا تستخدم هذا المكون إلا لِسَببٍ وجيه. يجب على جميع العناصر التي تستجيب للضغط أن تُظهِر علامةً مرئيةً تُعلم المستخدم بأنّها قد لُمِسَت، وهذا المكون لا يظهر أي شيء من هذا القبيل، بل يظهر وكأنّه لم يُضغَط عليه.

يدعم TouchableWithoutFeedback مكوّنًا ابنًا واحدًا فقط. إذا كنت تريد العديد من المكونات الأبناء، فقم بتغليفها داخل مُكوّنِ‎‎View‎‎. والأهم من ذلك، اعلم أنّ المكوِّن TouchableWithoutFeedback يعمل عن طريق استنساخ مكوّنه الابن وتطبيق خاصيَّات المستجيب (responder) عليه. ولذلك من الضروري أن تُمرِّرَ أي مكوّنات وسيطة (intermediary components) هذه الخاصيات إلى مكوّن React Native الضِّمنيّ (underlying component).

مثال

function MyComponent(props) {
  return (
    <View {...props} style={{flex: 1, backgroundColor: '#fff'}}>
      <Text>My Component</Text>
    </View>
  );
}

<TouchableWithoutFeedback onPress={() => alert('Pressed!')}>
  <MyComponent />
</TouchableWithoutFeedback>;

الخاصيات

‎‎accessibilityIgnoresInvertColors‎‎

النوع مطلوب
قيمة منطقيّة لا

‎‎accessible‎‎

عندما تكون ذات القيمة ‎‎true‎‎، فذلك يشير إلى أن العرض عنصرُ إمكانية وصول (accessibility element). افتراضيًّا، يمكن الوصول إلى جميع العناصر القابلة للّمس.

النوع مطلوب
قيمة منطقيّة لا

‎‎accessibilityLabel‎‎

يستبدِل النص الذي يقرأه قارئ الشاشة عندما يتفاعل المستخدم مع العنصر. افتراضيًا، يُنشأ الملصق (label) عن طريق العبور عبر جميع المكوّنات الأبناء وتجميع كافة العقد النصية مفصولةً بمسافة.

النوع مطلوب
سلسلة نصيّة لا

‎‎accessibilityHint‎‎

يُساعد تلميح إمكانية الوصول (accessibility hint) المستخدمينَ على فهم ما سيحدث عندما يقومون بإجراءٍ على عنصر إمكانية الوصول عندما لا تكون النتيجة واضحةً من مُلصَق إمكانية الوصول.

النوع مطلوب
سلسلة نصيّة لا

‎‎accessibilityRole‎‎

تقوم الخاصيّة accessibilityRole بتوصيل الغرض من المكون (أي دَوره) إلى مُستخدمِ تقنيةٍ مساعدة (assistive technology).

يُمكن للخاصيّة ‎‎accessibilityRole‎‎ أن تحمل أحد القيم التالية:

  • ‎‎'none'‎‎ - تُستخدَم عندما لا يكون للعنصر أي دور.
  • ‎‎'button'‎‎ - تستخدم عندما تجب معاملة العنصر كزر.
  • ‎‎'link'‎‎ - تستخدم عندما تجب معاملة العنصر كرابط.
  • ‎‎'search'‎‎ - تستخدم عندما تجب معاملة عنصر حقل النص كعنصر بحث كذلك.
  • ‎‎'image'‎‎ - تستخدم عندما تجب معاملة العنصر كصورة. يمكن دمجها مع زرٍ أو رابطٍ مثلا.
  • ‎‎'keyboardkey'‎‎ - تستخدم عندما يتصرَّف العنصرُ كمفتاح لوحة مفاتيح.
  • ‎‎'text'‎‎ - تستخدم عندما تجب معاملة العنصر كنص ثابت لا يمكن تغييره.
  • ‎‎'adjustable'‎‎ - تستخدم عندما يمكن "تعديل" العنصر (مثل شريط تمريرٍ [slider]).
  • ‎‎'imagebutton'‎‎ - تستخدم عندما تجب معاملة العنصر كزرٍ مع كونِه صورة في نفس الوقت.
  • ‎‎'header'‎‎ - تستخدم عندما يتصرف عنصرٌ كترويسةٍ (header) لقسمِ محتوى (كعنوان شريط التنقل).
  • ‎‎'summary'‎‎ - تستخدم عندما يمكن استخدام عنصر ما لتقديم ملخص سريع للظروف الحالية في التطبيق عند بدء تشغيل التطبيق لأول مرة.
  • ‎‎'alert'‎‎ - تستخدم عندما يحتوي عنصر على نص مهم لعرضه للمستخدم.
  • ‎‎'checkbox'‎‎ - تستخدم عندما يمثل عنصر مربعًا يمكن تحديده أو إلغاء تحديده أو في حالة تحديد مختلطة.
  • ‎‎'combobox'‎‎ - تستخدم عندما يمثل عنصر مربع تحرير وسرد (combo box)، مما يسمح للمستخدم بالاختيار من بين عدة خيارات.
  • ‎‎'menu'‎‎ - تستخدم عندما يكون المكون قائمةً من الخيارات.
  • ‎‎'menubar'‎‎ - تستخدم عندما يكون المكون عبارة عن حاوية متعددة القوائم.
  • ‎‎'menuitem'‎‎ - تستخدم لتمثيل عنصرٍ داخل قائمة.
  • ‎‎'progressbar'‎‎ - تستخدم لتمثيل مكون يشير إلى تقدم المهمة (شريط تقدم).
  • ‎‎'radio'‎‎ - تستخدم لتمثيل زر اختيار.
  • ‎‎'radiogroup'‎‎ - تستخدم لتمثيل مجموعة من أزرار الاختيار.
  • ‎‎'scrollbar'‎‎ - تستخدم لتمثيل شريط تمرير.
  • ‎‎'spinbutton'‎‎ - تستخدم لتمثيل زر يفتح قائمة من الخيارات.
  • ‎‎'switch'‎‎ - تستخدم لتمثيل مُحوِّلة يمكن تشغيلها وإيقاف تشغيلها.
  • ‎‎'tab'‎‎ - تستخدم لتمثيل علامة تبويب.
  • ‎‎'tablist'‎‎ - تستخدم لتمثيل قائمة من علامات التبويب.
  • ‎‎'timer'‎‎ - تستخدم لتمثيل مؤقت.
  • ‎‎'toolbar'‎‎ - تستخدم لتمثيل شريط أدوات (حاوية من أزرارٍ ومكوّنات إجراءات).
النوع مطلوب
سلسلة نصيّة لا

‎‎accessibilityState‎‎

تصف الحالة الحالية لمكوّنٍ ما لمستخدمِ تقنيةٍ مساعدة.

انظر دليل إمكانية الوصول لمزيد من المعلومات.

النوع مطلوب
‎‎object: {disabled: bool, selected: bool, checked: bool or 'mixed', busy: bool, expanded: bool}‎‎ لا

‎‎accessibilityActions‎‎

تسمح إجراءات إمكانية الوصول (Accessibility actions) لتقنيّة مساعدة باستدعاء إجراءات مكونٍ برمجيًا. يجب أن تحتوي الخاصية accessibilityActions على قائمة كائنات إجراءات (action objects). يجب أن يحتوي كل كائن إجراء على اسم الحقل وعلى ملصق (label).

انظر دليل إمكانية الوصول لمزيد من المعلومات.

النوع مطلوب
مصفوفة لا

‎‎onAccessibilityAction‎‎

دالةٌ تُستدعى عند قيام المستخدم بتنفيذ إجراءات إمكانية الوصول. معامل هذه الدالة الوحيد هو حدثٌ يحتوي على اسم الإجراء المراد تنفيذه.

انظر دليل إمكانية الوصول لمزيد من المعلومات.

النوع مطلوب
دالة لا

‎‎delayLongPress‎‎

التأخير بالمللي ثانية، منذ اللحظة التي تستدعى فيها دالّةُ ‎‎onPressIn‎‎، قبل استدعاء ‎‎onLongPress‎‎.

النوع مطلوب
عدد لا

‎‎delayPressIn‎‎

التأخير بالمللي ثانية، من بداية اللمس، قبل أن تُستدعى الدالة ‎‎onPressIn‎‎.

النوع مطلوب
عدد لا

‎‎delayPressOut‎‎

التأخير بالمللي ثانية، من تحرير اللمس، قبل استدعاء ‎‎onPressOut‎‎.

النوع مطلوب
عدد لا

‎‎disabled‎‎

عندما تكون ذات القيمة ‎‎true‎‎، تُعطَّل جميع التفاعلات مع هذا المكون.

النوع مطلوب
قيمة منطقيّة لا

‎‎hitSlop‎‎

تُحدد هذه الخاصيّة المدى الذي يمكن أن يبدأ فيه لمس الزّر. يُضاف هذا إلى الخاصيّة ‎‎pressRetentionOffset‎‎ عند نقل اللمسة بعيدًا عن الزر.

ملاحظة: لا تمتد منطقة اللمس أبدًا بعد حدود العرض الأب، ودائمًا ما يأخذ مؤشر Z-index الخاص بالعروض الأشقّاء (المجاورة) الأولويّةَ إذا وقعت اللمسة على عرضين متداخلين.

النوع مطلوب
‎‎object: {top: number, left: number, bottom: number, right: number}‎‎ لا

‎‎onBlur‎‎

تُستدعى عندما يفقد العنصر التركيز.

النوع مطلوب
دالة لا

‎‎onFocus‎‎

تُستدعى عندما يستقبل العنصر التركيز.

النوع مطلوب
دالة لا

‎‎onLayout‎‎

تُستدعى عند التركيب وتغيُّر التخطيط. ‎‎{nativeEvent: {layout: {x, y, width, height}}}‎‎.

النوع مطلوب
دالة لا

‎‎onLongPress‎‎

النوع مطلوب
دالة لا

‎‎onPress‎‎

تُستدعى عندما يتم تحرير اللمس، ولكنها لا تُستدعى إذا أُلغيَ اللمس (بواسطة تمريرٍ يأخذ قفل المستجيب (responder lock) مثلًا).

النوع مطلوب
دالة لا

‎‎onPressIn‎‎

تُستدعى بمجرد الضغط على العنصر القابل للّمس وتُستدعى حتى قبل دالة ‎‎onPress‎‎. قد يكون هذا مفيدًا عند إجراء طلبات الشبكة.

النوع مطلوب
دالة لا

‎‎onPressOut‎‎

تُستدعى بمجرد تحرير اللمس حتى قبل دالة ‎‎onPress‎‎.

النوع مطلوب
دالة لا

‎‎pressRetentionOffset‎‎

عند تعطيل عرض التمرير (scroll view)، تُحدد هذه الخاصيّة مدى المسافة التي يمكن أن تتحرك بها اللمسة بعيدًا عن الزر قبل إلغاء تنشيطه. بمجرد إلغاء تنشيط الزر، حاول تحريكه للخلف وسترى أن الزر قد نُشِّط مرة أخرى! حركه للخلف وللأمام عدة مرات أثناء تعطيل عرض التمرير. تأكد من تمرير قيمة ثابتةٍ لتقليل تخصيصات الذاكرة.

النوع مطلوب
‎‎object: {top: number, left: number, bottom: number, right: number}‎‎ لا

‎‎nativeID‎‎

النوع مطلوب
سلسلة نصيّة لا

‎‎testID‎‎

تُستخدم لتحديد موقع هذا العرض في الاختبارات الشاملة (end-to-end tests).

النوع مطلوب
سلسلة نصيّة لا

‎‎touchSoundDisabled‎‎

إذا كان ذات القيمة ‎‎true‎‎، فلن يُشغَّل صوت النظام عند اللمس.

النوع مطلوب المنصة
قيمة منطقيّة لا Android

تعريفات الأنواع

event

النوع: كائن.

مصادر