الفرق بين المراجعتين لصفحة: «ReactNative/touchablewithoutfeedback»
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
||
سطر 349: | سطر 349: | ||
* [https://facebook.github.io/react-native/docs/touchablewithoutfeedback صفحة TouchableWithoutFeedback في توثيق React Native الرسمي.] | * [https://facebook.github.io/react-native/docs/touchablewithoutfeedback صفحة TouchableWithoutFeedback في توثيق React Native الرسمي.] | ||
[[تصنيف:ReactNative]] | [[تصنيف:ReactNative]] | ||
[[تصنيف:React Native Component]] |
المراجعة الحالية بتاريخ 14:02، 9 أكتوبر 2021
ملاحظة: إذا كنت تريد طريقةً أكثر شمولية للتعامل مع عناصر الإدخال باللمس اطّلع على واجهة
Pressable
البرمجية.
لا تستخدم هذا المكون إلا لِسَببٍ وجيه. يجب على جميع العناصر التي تستجيب للضغط أن تُظهِر علامةً مرئيةً تُعلم المستخدم بأنّها قد لُمِسَت، وهذا المكون لا يظهر أي شيء من هذا القبيل، بل يظهر وكأنّه لم يُضغَط عليه.
يدعم 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>;
انظر المثال الشامل التالي (تجربة حية):
import React, { useState } from "react";
import { StyleSheet, TouchableWithoutFeedback, Text, View } from "react-native";
const TouchableWithoutFeedbackExample = () => {
const [count, setCount] = useState(0);
const onPress = () => {
setCount(count + 1);
};
return (
<View style={styles.container}>
<View style={styles.countContainer}>
<Text style={styles.countText}>Count: {count}</Text>
</View>
<TouchableWithoutFeedback onPress={onPress}>
<View style={styles.button}>
<Text>Touch Here</Text>
</View>
</TouchableWithoutFeedback>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: "center",
paddingHorizontal: 10
},
button: {
alignItems: "center",
backgroundColor: "#DDDDDD",
padding: 10
},
countContainer: {
alignItems: "center",
padding: 10
},
countText: {
color: "#FF00FF"
}
});
export default TouchableWithoutFeedbackExample;
الخاصيات
accessibilityIgnoresInvertColors
النوع | مطلوب |
---|---|
قيمة منطقيّة | لا |
accessible
عندما تكون ذات القيمة true
، فذلك يشير إلى أن العرض عنصرُ إمكانية وصول (accessibility element). افتراضيًّا، يمكن الوصول إلى جميع العناصر القابلة للّمس.
النوع | مطلوب |
---|---|
قيمة منطقيّة | لا |
accessibilityLabel
يستبدِل النص الذي يقرأه قارئ الشاشة عندما يتفاعل المستخدم مع العنصر. افتراضيًا، يُنشأ العنوان أو التسمية (label) عن طريق العبور عبر جميع المكوّنات الأبناء وتجميع كافة العقد النصية Text
مفصولةً بمسافة.
النوع | مطلوب |
---|---|
سلسلة نصيّة | لا |
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
تصف الحالة الحالية لمكوّنٍ ما لمستخدمِ تقنيةٍ مساعدة.
انظر دليل سهولة الوصول لمزيد من المعلومات.
النوع | مطلوب |
---|---|
كائن: {disabled: bool, selected: bool, checked: bool or 'mixed', busy: bool, expanded: bool} | لا |
accessibilityActions
تسمح إجراءات سهولة الوصول (Accessibility actions) لتقنيّة مساعدة باستدعاء إجراءات مكونٍ برمجيًا. يجب أن تحتوي الخاصية accessibilityActions
على قائمة كائنات إجراءات (action objects). يجب أن يحتوي كل كائن إجراء على اسم الحقل وعلى تسمية أو عنوان (label).
انظر دليل سهولة الوصول لمزيد من المعلومات.
النوع | مطلوب |
---|---|
مصفوفة | لا |
onAccessibilityAction
دالةٌ تُستدعى عند قيام المستخدم بتنفيذ إجراءات سهولة الوصول. معامل هذه الدالة الوحيد هو حدثٌ يحتوي على اسم الإجراء المراد تنفيذه.
انظر دليل سهولة الوصول لمزيد من المعلومات.
النوع | مطلوب |
---|---|
دالة | لا |
accessibilityValue
تمثل القيمة الحالية للمكون ويمكن أن تكون وصفًا نصيًا لقيمة المكون أو معلومات حول المجال مثل القيمة الدنيا والقيمة الحالية والقيمة العظمى للمكونات ذات المجال مثل المنزلقات sliders وأشرطة التقدم.
انظر دليل سهولة الوصول لمزيد من المعلومات.
النوع | مطلوب |
---|---|
كائن {min: number, max: number, now: number, text: string} | لا |
delayLongPress
التأخير بالمللي ثانية، منذ اللحظة التي تستدعى فيها دالّةُ onPressIn
، قبل استدعاء onLongPress
.
النوع | مطلوب |
---|---|
عدد | لا |
delayPressIn
التأخير بالمللي ثانية، من بداية اللمس، قبل أن تُستدعى الدالة onPressIn
.
النوع | مطلوب |
---|---|
عدد | لا |
delayPressOut
التأخير بالمللي ثانية، من تحرير اللمس، قبل استدعاء onPressOut
.
النوع | مطلوب |
---|---|
عدد | لا |
disabled
عندما تكون ذات القيمة true
، تُعطَّل جميع التفاعلات مع هذا المكون.
النوع | مطلوب |
---|---|
قيمة منطقيّة | لا |
hitSlop
تُحدد هذه الخاصيّة المدى الذي يمكن أن يبدأ فيه لمس الزّر. يُضاف هذا إلى الخاصيّة pressRetentionOffset
عند نقل اللمسة بعيدًا عن الزر.
ملاحظة: لا تمتد منطقة اللمس أبدًا بعد حدود العرض الأب، ودائمًا ما يأخذ مؤشر Z-index الخاص بالعروض الأشقّاء (المجاورة) الأولويّةَ إذا وقعت اللمسة على عرضين متداخلين.
النوع | مطلوب |
---|---|
كائن Rect أو عدد | لا |
onBlur
تُستدعى عندما يفقد العنصر التركيز.
النوع | مطلوب |
---|---|
دالة | لا |
onFocus
تُستدعى عندما يستقبل العنصر التركيز.
النوع | مطلوب |
---|---|
دالة | لا |
onLayout
تُستدعى عند التركيب وتغيُّر التخطيط.
النوع | مطلوب |
---|---|
دالة
({ nativeEvent: LayoutEvent }) => void |
لا |
onLongPress
دالة تُستدعى إن تجاوز الوقت قيمة 370 ميللي ثانية بعد بدء onPressIn
ويمكن تغيير تلك القيمة عبر delayLongPress
.
النوع | مطلوب |
---|---|
دالة | لا |
onPress
تُستدعى عندما يتم تحرير اللمس، ولكنها لا تُستدعى إذا أُلغيَ اللمس (بواسطة تمريرٍ يأخذ قفل المستجيب (responder lock) مثلًا). أول وسيط يمرر لهذه الدالة هو حدث من نمط PressEvent
.
النوع | مطلوب |
---|---|
دالة | لا |
onPressIn
تُستدعى بمجرد الضغط على العنصر القابل للّمس وتُستدعى حتى قبل دالة onPress
. قد يكون هذا مفيدًا عند إجراء طلبات الشبكة. أول وسيط يمرر لهذه الدالة هو حدث من نمط PressEvent
.
النوع | مطلوب |
---|---|
دالة | لا |
onPressOut
تُستدعى بمجرد تحرير اللمس حتى قبل دالة onPress
. أول وسيط يمرر لهذه الدالة هو حدث من نمط PressEvent
.
النوع | مطلوب |
---|---|
دالة | لا |
pressRetentionOffset
عند تعطيل عرض التمرير (scroll view)، تُحدد هذه الخاصيّة مدى المسافة التي يمكن أن تتحرك بها اللمسة بعيدًا عن الزر قبل إلغاء تنشيطه. بمجرد إلغاء تنشيط الزر، حاول تحريكه للخلف وسترى أن الزر قد نُشِّط مرة أخرى! حركه للخلف وللأمام عدة مرات أثناء تعطيل عرض التمرير. تأكد من تمرير قيمة ثابتةٍ لتقليل تخصيصات الذاكرة.
النوع | مطلوب |
---|---|
كائن Rect أو عدد | لا |
nativeID
النوع | مطلوب |
---|---|
سلسلة نصيّة | لا |
testID
تُستخدم لتحديد موقع هذا العرض في الاختبارات الشاملة (end-to-end tests).
النوع | مطلوب |
---|---|
سلسلة نصيّة | لا |
touchSoundDisabled
إذا كان ذات القيمة true
، فلن يُشغَّل صوت النظام عند اللمس.
النوع | مطلوب | المنصة |
---|---|---|
قيمة منطقيّة | لا | Android |