Pull to refresh
Classic and Material headers, shared messages, colors, haptics, and completion behavior.
Native refresh interactions for React Native 0.76+
Fabric-native pull-to-refresh and load-more behavior for Android and iOS, with predictable completion for gesture and programmatic requests.
One container, a complete request lifecycle
Promise-aware callbacks, controlled state, instance commands, and stale-request protection keep gesture and network state aligned.
Classic and Material headers, shared messages, colors, haptics, and completion behavior.
Pull-release by default or guarded automatic loading after a real upward scroll.
Android TwoLevelHeader provides a separate full-screen interaction with open and close commands.
Request lifecycle
Native accepts a refresh or page request only while the instance is idle.
The callback receives a requestId and may return a Promise or the next hasMore value.
Uncontrolled mode closes automatically; controlled mode follows your prop state.
Install
New Architecture is required. Expo projects need a development build; Expo Go is not supported.
npm install expo-smartrefreshlayout@nextRead the setup guide