This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.
This is documentation for the next SDK version. For up-to-date documentation, see the latest version (SDK 57).
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!