This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.
PagerView
A horizontally paged view compatible with react-native-pager-view.
A PagerView component with an API compatible with react-native-pager-view. It wraps the platform-specific @expo/ui primitives: Jetpack Compose HorizontalPager on Android and a paged SwiftUI ScrollView on iOS. Each child becomes a separate page and stretches to fill the pager.
If you need lower-level control over platform-specific paging behavior or modifiers, use the native primitives directly. On iOS, TabView with the page style also renders a horizontal pager and may fit better when you want SwiftUI's built-in page indicators.
Installation
If you are installing this in an existing React Native app, make sure to install expo in your project.
Optionally, install react-native-worklets if you need either of the following:
- Animated
setPageon iOS. Without worklets, iOSsetPagefalls back to a non-animated jump. Android animates regardless. - Per-frame
onPageScrollcallbacks that stay on the UI thread. When youronPageScrollhandler is itself a worklet, it runs synchronously on the UI thread every frame instead of hopping to JS. Without worklets the callback still fires — it just runs on the JS thread.
Migrating from react-native-pager-view
Update the import statement by importing PagerView from @expo/ui/community/pager-view:
import PagerView from 'react-native-pager-view'; // becomes: import PagerView from '@expo/ui/community/pager-view';
Before you swap, you should know what changes:
orientation="vertical",keyboardDismissMode,overdrag, andoverScrollModeare not supported.- The
usePagerViewhook is not provided — use arefinstead. - On iOS,
onPageScrollandonPageScrollStateChangedonly fire on iOS 18+.
See Platform behavior for the full list.
Basic usage
Platform behavior
Web is not supported and rendering PagerView on web throws at runtime.
Additional differences from upstream react-native-pager-view:
orientation="vertical",keyboardDismissMode,overdrag, andoverScrollModeare not supported. Only horizontal paging is available, and the others fall back to the platform pager's defaults.- The
usePagerViewhook is not provided. Use areftoPagerViewto accesssetPage,setPageWithoutAnimation, andsetScrollEnabled. setScrollEnabledtriggers a re-render so the new value flows through to the native view as a prop. It is still useful for toggling from non-React contexts such as a ref-based gesture handler.- The
borderRadiusstyle applies on both platforms. On Android, only numeric values clip the pager. The underlying Compose host silently drops string values such as'50%'.
API
import PagerView from '@expo/ui/community/pager-view';
No API data file found, sorry!