الفرق بين المراجعتين لصفحة: «ReactNative/touchablehighlight»
رقية-بورية (نقاش | مساهمات) رفع المحتوى |
رقية-بورية (نقاش | مساهمات) ط مراجعة |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:المكون TouchableHighlight في ReactNative}}</noinclude> | <noinclude>{{DISPLAYTITLE:المكون TouchableHighlight في ReactNative}}</noinclude> | ||
'''ملاحظة''': إذا كنت تريد | '''ملاحظة''': إذا كنت تريد طريقةً أكثر شمولية للتعامل مع عناصر الإدخال باللمس اطّلع على واجهة [[ReactNative/pressable|<code>Pressable</code>]] البرمجية. | ||
يُستعمل مثل حاوية تجعل العناصر تستجيب لأحداث اللمس (touch events) | يُستعمل مثل حاوية تجعل العناصر تستجيب لأحداث اللمس (touch events)، وعند الضغط على عنصر موجود داخل المكون <code>TouchableHighlight</code> يُصبح شفافًا قليلًا، وبذلك يظهر اللون الخلفي خلاله، مما يتسبب في تعتيم خلفية الواجهة (<code>[[ReactNative/view|View]]</code>). | ||
تظهر الطبقة الخلفية المُشار إليها أعلاه بسبب وضع العنصر داخل | تظهر الطبقة الخلفية المُشار إليها أعلاه بسبب وضع العنصر داخل مكوّن الواجهة <code>View</code> الذي يؤثر على تخطيط الشاشة، وقد تتسبب في حدوث آثار غير مرئية غير مرغوب فيها إذا لم تُعامل معاملةً صحيحة. | ||
يجب أن يكون للمكون <code>TouchableHighlight</code> ابن '''واحد فقط'''، وعند عدَّة ابناء يجب وضعهم داخل المكون <code>View</code>. | يجب أن يكون للمكون <code>TouchableHighlight</code> ابن '''واحد فقط'''، وعند عدَّة ابناء يجب وضعهم داخل المكون <code>View</code>. | ||
سطر 10: | سطر 10: | ||
'''مثال''' | '''مثال''' | ||
<syntaxhighlight class="react">function MyComponent(props) { | <syntaxhighlight class="react" lang="javascript">function MyComponent(props) { | ||
return ( | return ( | ||
<View {...props} style={{ flex: 1, backgroundColor: '#fff' }}> | <View {...props} style={{ flex: 1, backgroundColor: '#fff' }}> | ||
سطر 27: | سطر 27: | ||
'''مثال''' | '''مثال''' | ||
<syntaxhighlight class="react">import React, { useState } from "react"; | <syntaxhighlight class="react" lang="javascript">import React, { useState } from "react"; | ||
import { StyleSheet, Text, TouchableHighlight, View } from "react-native"; | import { StyleSheet, Text, TouchableHighlight, View } from "react-native"; | ||
سطر 77: | سطر 77: | ||
=== <code>activeOpacity</code> === | === <code>activeOpacity</code> === | ||
تُحدد نسبة شفافية العنصر الموجود داخل | تُحدد نسبة شفافية العنصر الموجود داخل المكوّن <code>TouchableHighlight</code> عند الضغط عليه، وتأخذ قيمًا بين صفر وواحد، والقيمة الإفتراضية لهذه الخاصية هي 0.85. يتطلب تشغيل هذه الخاصية أن تكون الخاصية <code>underlayColor</code> مُفعَّلة. | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 86: | سطر 86: | ||
| لا | | لا | ||
|} | |} | ||
=== <code>onHideUnderlay</code> === | === <code>onHideUnderlay</code> === | ||
سطر 100: | سطر 97: | ||
| لا | | لا | ||
|} | |} | ||
=== <code>onShowUnderlay</code> === | === <code>onShowUnderlay</code> === | ||
سطر 114: | سطر 108: | ||
| لا | | لا | ||
|} | |} | ||
=== <code>style</code> === | === <code>style</code> === | ||
سطر 123: | سطر 114: | ||
! مطلوب | ! مطلوب | ||
|- | |- | ||
| View.style | | <code>[[ReactNative/view style props|View.style]]</code> | ||
| لا | | لا | ||
|} | |} | ||
=== <code>underlayColor</code> === | === <code>underlayColor</code> === | ||
تُحدِّد لون الطبقة الخلفية الظاهرة من خلال المكون <code>TouchableHighlight</code> عند الضغط عليه. | |||
{| class="wikitable" | {| class="wikitable" | ||
سطر 137: | سطر 125: | ||
! مطلوب | ! مطلوب | ||
|- | |- | ||
| [ | | [[ReactNative/colors|(color)]] | ||
| لا | | لا | ||
|} | |} | ||
=== <code>hasTVPreferredFocus</code> === | === <code>hasTVPreferredFocus</code> === | ||
تعمل فقط على أجهزة Apple TV. | تعمل فقط على أجهزة Apple TV. | ||
[ | أُنظر توثيق المكوّن [[ReactNative/view|<code>View</code>.]] | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 158: | سطر 143: | ||
| iOS | | iOS | ||
|} | |} | ||
=== <code>nextFocusDown</code> === | === <code>nextFocusDown</code> === | ||
[ | أُنظر توثيق المكوّن [[ReactNative/view|<code>View</code>.]] | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 174: | سطر 156: | ||
| أندرويد | | أندرويد | ||
|} | |} | ||
=== <code>nextFocusForwad</code> === | === <code>nextFocusForwad</code> === | ||
أُنظر توثيق المكوّن [[ReactNative/view|<code>View</code>.]] | |||
{| class="wikitable" | {| class="wikitable" | ||
سطر 190: | سطر 169: | ||
| أندرويد | | أندرويد | ||
|} | |} | ||
=== <code>nextFocusLeft</code> === | === <code>nextFocusLeft</code> === | ||
أُنظر توثيق المكوّن [[ReactNative/view|<code>View</code>.]] | |||
{| class="wikitable" | {| class="wikitable" | ||
سطر 206: | سطر 182: | ||
| أندرويد | | أندرويد | ||
|} | |} | ||
=== <code>nextFocusRight</code> === | === <code>nextFocusRight</code> === | ||
أُنظر توثيق المكوّن [[ReactNative/view|<code>View</code>.]] | |||
{| class="wikitable" | {| class="wikitable" | ||
سطر 222: | سطر 195: | ||
| أندرويد | | أندرويد | ||
|} | |} | ||
=== <code>nextFocusUp</code> === | === <code>nextFocusUp</code> === | ||
أُنظر توثيق المكوّن [[ReactNative/view|<code>View</code>.]] | |||
{| class="wikitable" | {| class="wikitable" | ||
سطر 238: | سطر 208: | ||
| أندرويد | | أندرويد | ||
|} | |} | ||
=== <code>testOnly_pressed</code> === | === <code>testOnly_pressed</code> === | ||
هذه الخاصية مفيدة أثناء إختبار التطبيق. | هذه الخاصية مفيدة أثناء إختبار التطبيق. | ||
سطر 254: | سطر 221: | ||
== المصادر == | == المصادر == | ||
[https://reactnative.dev/docs/touchablehighlight صفحة TouchableHighlight في توثيق React Native الرسمي] | [https://reactnative.dev/docs/touchablehighlight صفحة TouchableHighlight في توثيق React Native الرسمي]. | ||
[[تصنيف: ReactNative]] | [[تصنيف: ReactNative]] |
مراجعة 11:14، 4 مارس 2021
ملاحظة: إذا كنت تريد طريقةً أكثر شمولية للتعامل مع عناصر الإدخال باللمس اطّلع على واجهة Pressable
البرمجية.
يُستعمل مثل حاوية تجعل العناصر تستجيب لأحداث اللمس (touch events)، وعند الضغط على عنصر موجود داخل المكون TouchableHighlight
يُصبح شفافًا قليلًا، وبذلك يظهر اللون الخلفي خلاله، مما يتسبب في تعتيم خلفية الواجهة (View
).
تظهر الطبقة الخلفية المُشار إليها أعلاه بسبب وضع العنصر داخل مكوّن الواجهة View
الذي يؤثر على تخطيط الشاشة، وقد تتسبب في حدوث آثار غير مرئية غير مرغوب فيها إذا لم تُعامل معاملةً صحيحة.
يجب أن يكون للمكون TouchableHighlight
ابن واحد فقط، وعند عدَّة ابناء يجب وضعهم داخل المكون View
.
مثال
function MyComponent(props) {
return (
<View {...props} style={{ flex: 1, backgroundColor: '#fff' }}>
<Text>My Component</Text>
</View>
);
}
<TouchableHighlight
activeOpacity={0.6}
underlayColor="#DDDDDD"
onPress={() => alert('Pressed!')}>
<MyComponent />
</TouchableHighlight>;
مثال
import React, { useState } from "react";
import { StyleSheet, Text, TouchableHighlight, View } from "react-native";
const TouchableHighlightExample = () => {
const [count, setCount] = useState(0);
const onPress = () => setCount(count + 1);
return (
<View style={styles.container}>
<TouchableHighlight onPress={onPress}>
<View style={styles.button}>
<Text>Touch Here</Text>
</View>
</TouchableHighlight>
<View style={styles.countContainer}>
<Text style={styles.countText}>
{count ? count : null}
</Text>
</View>
</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 TouchableHighlightExample;
الخاصيات (Props)
activeOpacity
تُحدد نسبة شفافية العنصر الموجود داخل المكوّن TouchableHighlight
عند الضغط عليه، وتأخذ قيمًا بين صفر وواحد، والقيمة الإفتراضية لهذه الخاصية هي 0.85. يتطلب تشغيل هذه الخاصية أن تكون الخاصية underlayColor
مُفعَّلة.
النوع | مطلوب |
---|---|
عدد (number) | لا |
onHideUnderlay
دالة تُستدعَى تلقائيًا عندما تُخفى الطبقة الخلفية (underlay).
النوع | مطلوب |
---|---|
دالة (function) | لا |
onShowUnderlay
دالة تُستدعى تلقائيًا عند إظهار الطبقة الخلفية.
النوع | مطلوب |
---|---|
دالة (function) | لا |
style
النوع | مطلوب |
---|---|
View.style
|
لا |
underlayColor
تُحدِّد لون الطبقة الخلفية الظاهرة من خلال المكون TouchableHighlight
عند الضغط عليه.
النوع | مطلوب |
---|---|
(color) | لا |
hasTVPreferredFocus
تعمل فقط على أجهزة Apple TV.
أُنظر توثيق المكوّن View
.
النوع | مطلوب | نظام التشغيل |
---|---|---|
قيمة منطقية (bool) | لا | iOS |
nextFocusDown
أُنظر توثيق المكوّن View
.
النوع | مطلوب | نظام التشغيل |
---|---|---|
قيمة منطقية (bool) | لا | أندرويد |
nextFocusForwad
أُنظر توثيق المكوّن View
.
النوع | مطلوب | نظام التشغيل |
---|---|---|
قيمة منطقية (bool) | لا | أندرويد |
nextFocusLeft
أُنظر توثيق المكوّن View
.
النوع | مطلوب | نظام التشغيل |
---|---|---|
قيمة منطقية (bool) | لا | أندرويد |
nextFocusRight
أُنظر توثيق المكوّن View
.
النوع | مطلوب | نظام التشغيل |
---|---|---|
قيمة منطقية (bool) | لا | أندرويد |
nextFocusUp
أُنظر توثيق المكوّن View
.
النوع | مطلوب | نظام التشغيل |
---|---|---|
قيمة منطقية (bool) | لا | أندرويد |
testOnly_pressed
هذه الخاصية مفيدة أثناء إختبار التطبيق.
النوع | مطلوب |
---|---|
قيمة منطقية (bool) | لا |