الفرق بين المراجعتين ل"ReactNative/segmentedcontrolios"
(أنشأ الصفحة ب'SegmentedControlIOS') |
جميل-بيلوني (نقاش | مساهمات) ط |
||
(7 مراجعات متوسطة بواسطة 3 مستخدمين غير معروضة) | |||
سطر 1: | سطر 1: | ||
− | SegmentedControlIOS | + | <noinclude>{{DISPLAYTITLE:المكون SegmentedControlIOS في ReactNative}}</noinclude> |
+ | <blockquote>'''مهمل:''' اسخدم أي من [https://reactnative.directory/?search=segmentedcontrol هذه الحزم من المجتمع] بدلًا منه. | ||
+ | </blockquote> | ||
+ | يُستخدم المكوّن <code>SegmentedControlIOS</code> لتصيير الواجهة UISegmentedControl على منصّة iOS. | ||
+ | __toc__<blockquote>'''تغيير الدليل المختار برمجيًا:''' | ||
+ | |||
+ | يمكن تغيير الدليل مباشرة (on the fly) وذلك بإسناد الخاصيّة <code>selectedIndex</code> لمتغير حالة، ثم تغيير قيمة هذا المتغيّر مع ملاحظة ضرورة تحديث متغيّر الحالة عند اختيار المستخدم قيمة، ويغيّر الدليل كما هو موضّح بالمثال التالي.</blockquote> | ||
+ | |||
+ | == مثال == | ||
+ | إليك المثال التالي ([https://snack.expo.dev/@hsoubwiki/segmentedcontrolios-example تجربة حية]):<syntaxhighlight lang="javascript">import React, { useState } from "react"; | ||
+ | import { SegmentedControlIOS, StyleSheet, Text, View } from "react-native"; | ||
+ | |||
+ | export default App = () => { | ||
+ | const [index, setIndex] = useState(0); | ||
+ | return ( | ||
+ | <View style={styles.container}> | ||
+ | <SegmentedControlIOS | ||
+ | values={['One', 'Two']} | ||
+ | selectedIndex={index} | ||
+ | onChange={(event) => { | ||
+ | setIndex(event.nativeEvent.selectedSegmentIndex); | ||
+ | }} | ||
+ | /> | ||
+ | <Text style={styles.text}> | ||
+ | Selected index: {index} | ||
+ | </Text> | ||
+ | </View> | ||
+ | ); | ||
+ | }; | ||
+ | |||
+ | const styles = StyleSheet.create({ | ||
+ | container: { | ||
+ | flex: 1, | ||
+ | padding: 24, | ||
+ | justifyContent: "center" | ||
+ | }, | ||
+ | text: { | ||
+ | marginTop: 24 | ||
+ | } | ||
+ | });</syntaxhighlight> | ||
+ | == الخاصيات == | ||
+ | |||
+ | موروثة من الخاصيات <code>[[ReactNative/view|View]]</code>. | ||
+ | |||
+ | === <code>enabled</code> === | ||
+ | |||
+ | لن يستطيع المستخدم التفاعل مع واجهة التحكم إذا كانت قيمتها <code>false</code>، والقيمة الافتراضية <code>true</code>. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | ! النوع | ||
+ | ! مطلوب | ||
+ | |- | ||
+ | | (bool) | ||
+ | | لا | ||
+ | |} | ||
+ | |||
+ | === <code>momentary</code> === | ||
+ | |||
+ | لن يبقى القطاع (segment) المختار مرئيًا إذا كانت قيمتها <code>true</code>، وتستمر الدالة <code>onValueChange</code> بعملها كالمعتاد. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | ! النوع | ||
+ | ! مطلوب | ||
+ | |- | ||
+ | | (bool) | ||
+ | | لا | ||
+ | |} | ||
+ | |||
+ | === <code>onChange</code> === | ||
+ | |||
+ | الدالة التي تُستدعى عندما ينقر المستخدم على القطاع، حيث يُمرر لها الحدث كمعامل. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | ! النوع | ||
+ | ! مطلوب | ||
+ | |- | ||
+ | | دالة (function) | ||
+ | | لا | ||
+ | |} | ||
+ | |||
+ | === <code>onValueChange</code> === | ||
+ | |||
+ | الدالة التي تُستدعى عندما ينقر المستخدم على القطاع، حيث يُمرر لها قيمة القطاع على أساس معامل. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | ! النوع | ||
+ | ! مطلوب | ||
+ | |- | ||
+ | | دالة (function) | ||
+ | | لا | ||
+ | |} | ||
+ | |||
+ | === <code>selectedIndex</code> === | ||
+ | |||
+ | قيمة الدليل <code>props.values</code> التي ستُختار في خاصيّة القطاع <code>values</code>. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | ! النوع | ||
+ | ! مطلوب | ||
+ | |- | ||
+ | | عدد (number) | ||
+ | | لا | ||
+ | |} | ||
+ | |||
+ | === <code>tintColor</code> === | ||
+ | |||
+ | لون تمييز التحكم. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | ! النوع | ||
+ | ! مطلوب | ||
+ | |- | ||
+ | | سلسلة نصية (string) | ||
+ | | لا | ||
+ | |} | ||
+ | |||
+ | <blockquote>'''ملاحظة:''' غير مدعومة على المنصات iOS ذات الإصدار 13 وما بعدها. | ||
+ | </blockquote> | ||
+ | === <code>values</code> === | ||
+ | |||
+ | مسمّيات (labels) مفاتيح قطاع التحكم، بالترتيب. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | ! النوع | ||
+ | ! مطلوب | ||
+ | |- | ||
+ | | مصفوفة من سلاسل نصية (array of string) | ||
+ | | لا | ||
+ | |} | ||
+ | |||
+ | == مصادر == | ||
+ | |||
+ | * [https://reactnative.dev/docs/segmentedcontrolios صفحة SegmentedControlIOS في توثيق React Native الرسميّ] | ||
+ | [[تصنيف: ReactNative]] | ||
+ | [[تصنيف:React Native Component]] |
المراجعة الحالية بتاريخ 14:45، 9 أكتوبر 2021
مهمل: اسخدم أي من هذه الحزم من المجتمع بدلًا منه.
يُستخدم المكوّن SegmentedControlIOS
لتصيير الواجهة UISegmentedControl على منصّة iOS.
تغيير الدليل المختار برمجيًا: يمكن تغيير الدليل مباشرة (on the fly) وذلك بإسناد الخاصيّة
selectedIndex
لمتغير حالة، ثم تغيير قيمة هذا المتغيّر مع ملاحظة ضرورة تحديث متغيّر الحالة عند اختيار المستخدم قيمة، ويغيّر الدليل كما هو موضّح بالمثال التالي.
مثال
إليك المثال التالي (تجربة حية):
import React, { useState } from "react";
import { SegmentedControlIOS, StyleSheet, Text, View } from "react-native";
export default App = () => {
const [index, setIndex] = useState(0);
return (
<View style={styles.container}>
<SegmentedControlIOS
values={['One', 'Two']}
selectedIndex={index}
onChange={(event) => {
setIndex(event.nativeEvent.selectedSegmentIndex);
}}
/>
<Text style={styles.text}>
Selected index: {index}
</Text>
</View>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
padding: 24,
justifyContent: "center"
},
text: {
marginTop: 24
}
});
الخاصيات
موروثة من الخاصيات View
.
enabled
لن يستطيع المستخدم التفاعل مع واجهة التحكم إذا كانت قيمتها false
، والقيمة الافتراضية true
.
النوع | مطلوب |
---|---|
(bool) | لا |
momentary
لن يبقى القطاع (segment) المختار مرئيًا إذا كانت قيمتها true
، وتستمر الدالة onValueChange
بعملها كالمعتاد.
النوع | مطلوب |
---|---|
(bool) | لا |
onChange
الدالة التي تُستدعى عندما ينقر المستخدم على القطاع، حيث يُمرر لها الحدث كمعامل.
النوع | مطلوب |
---|---|
دالة (function) | لا |
onValueChange
الدالة التي تُستدعى عندما ينقر المستخدم على القطاع، حيث يُمرر لها قيمة القطاع على أساس معامل.
النوع | مطلوب |
---|---|
دالة (function) | لا |
selectedIndex
قيمة الدليل props.values
التي ستُختار في خاصيّة القطاع values
.
النوع | مطلوب |
---|---|
عدد (number) | لا |
tintColor
لون تمييز التحكم.
النوع | مطلوب |
---|---|
سلسلة نصية (string) | لا |
ملاحظة: غير مدعومة على المنصات iOS ذات الإصدار 13 وما بعدها.
values
مسمّيات (labels) مفاتيح قطاع التحكم، بالترتيب.
النوع | مطلوب |
---|---|
مصفوفة من سلاسل نصية (array of string) | لا |