المكون RefreshControl في React Native
يُستخدَم هذا المكوّن داخل مكوّن ScrollView
أو مكوّن ListView
لإضافة وظيفة التحديث بالسحب. عندما يكون المكوّن ScrollView
في الموقع scrollY: 0
، يؤدي السحب لأسفل إلى تشغيل حَدَث onRefresh
.
مثال
إليك المثال التالي (تجربة حية):
import React from 'react';
import { RefreshControl, SafeAreaView, ScrollView, StyleSheet, Text } from 'react-native';
const wait = (timeout) => {
return new Promise(resolve => setTimeout(resolve, timeout));
}
const App = () => {
const [refreshing, setRefreshing] = React.useState(false);
const onRefresh = React.useCallback(() => {
setRefreshing(true);
wait(2000).then(() => setRefreshing(false));
}, []);
return (
<SafeAreaView style={styles.container}>
<ScrollView
contentContainerStyle={styles.scrollView}
refreshControl={
<RefreshControl
refreshing={refreshing}
onRefresh={onRefresh}
/>
}
>
<Text>Pull down to see RefreshControl indicator</Text>
</ScrollView>
</SafeAreaView>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
},
scrollView: {
flex: 1,
backgroundColor: 'pink',
alignItems: 'center',
justifyContent: 'center',
},
});
export default App;
ملاحظة: الخاصيّة refreshing
مُتحكم فيها (controlled prop)، ولهذا السبب يجب تعيين القيمة true
لها في دالة onRefresh
وإلا سيتوقف مؤشر التحديث فورًا.
الخاصيات
يرث خاصيّات المكوّن View
.
refreshing
ما إذا كان على الواجهة أن تشير إلى تحديث قيد العمل.
النوع | مطلوب |
---|---|
قيمة منطقيّة | نعم |
colors
الألوان (واحد على الأقل) التي ستُستخدَم لرسم مؤشر التحديث.
النوع | مطلوب | المنصة |
---|---|---|
مصفوفة ألوان | لا | Android |
enabled
ما إذا تم تمكين وظيفة التحديث بالسحب.
النوع | القيمة الافتراضية | مطلوب | المنصة |
---|---|---|---|
قيمة منطقية | true | لا | Android |
onRefresh
دالةٌ تُستدعى عندما تبدأ الواجهة بالتحديث.
النوع | مطلوب |
---|---|
دالة | لا |
progressBackgroundColor
لون خلفية مؤشر التحديث.
النوع | مطلوب | المنصة |
---|---|---|
لون | لا | Android |
progressViewOffset
الإزاحة العلويّة لعرض التقدم.
النوع | القيمة الافتراضية | مطلوب | المنصة |
---|---|---|---|
عدد | 0 | لا | Android |
size
حجم مؤشر التحديث.
النوع | القيمة الافتراضية | مطلوب | المنصة |
---|---|---|---|
RefreshControl.SIZE | RefreshLayoutConsts.SIZE.DEFAULT | لا | Android |
tintColor
لون مؤشر التحديث.
النوع | مطلوب | المنصة |
---|---|---|
لون | لا | iOS |
title
العنوان المعروض تحت مؤشر التحديث.
النوع | مطلوب | المنصة |
---|---|---|
سلسلة نصيّة | لا | iOS |
titleColor
لون العنوان.
النوع | مطلوب | المنصة |
---|---|---|
لون | لا | iOS |
تعريفات الأنواع
RefreshLayoutConsts.SIZE
ثوابت مكون SwipeRefreshLayout الخاص بمنصة Android. قد يتغير الحجم الحقيقي لمكون نسبة للجهاز المستعمل، ويمكنك قراءة المزيد حول المكونات الأصيلة في توثيق Android الرسمي.
النوع |
---|
تعداد enum |
الثوابت:
الاسم | النوع | القيمة | الوصف |
---|---|---|---|
DEFAULT | عدد صحيح Int | 1 | حجم RefreshControl الافتراضي |
LARGE | عدد صحيح Int | 0 | حجم RefreshControl الكبير |