Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@react-native-community/viewpager

Package Overview
Dependencies
Maintainers
2
Versions
45
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@react-native-community/viewpager

React Native wrapper for Android and iOS ViewPager

  • 4.2.4
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
15K
decreased by-2.39%
Maintainers
2
Weekly downloads
 
Created
Source

react-native-viewpager

CircleCI branch npm package Lean Core Extracted License

This component allows the user to swipe left and right through pages of data. Under the hood it is using the native Android ViewPager and the iOS UIPageViewController implementations. See it in action!

ViewPager

Versions

1.x2.x3.x4.0.x, 4.1.x>= 4.2.x
iOS supportiOS supportiOS supportiOS support
Android supportAndroid supportAndroidX supportViewPager2 supportReverted to 3.3.0

Experimental version

ViewPager2 for Android uses another implementation than ViewPager1, hence it caused lots of issues. You can try experimental version using below command

yarn add @react-native-community/viewpager@next

Getting started

yarn add @react-native-community/viewpager

Linking

>= 0.60

Autolinking will just do the job.

< 0.60

Mostly automatic

react-native link @react-native-community/viewpager

Manual linking
Manually link the library on iOS

Follow the instructions in the React Native documentation to manually link the framework or link using Cocoapods by adding this to your Podfile:

pod 'react-native-viewpager', :path => '../node_modules/@react-native-community/viewpager'
Manually link the library on Android
Make the following changes:
android/settings.gradle
include ':@react-native-community_viewpager'
project(':@react-native-community_viewpager').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-community/viewpager/android')
android/app/build.gradle
dependencies {
   ...
   implementation project(':@react-native-community_viewpager')
}
android/app/src/main/.../MainApplication.java

On top, where imports are:

import com.reactnativecommunity.viewpager.RNCViewPagerPackage;

Add the RNCViewPagerPackage class to your list of exported packages.

@Override
protected List<ReactPackage> getPackages() {
  return Arrays.<ReactPackage>asList(
    new MainReactPackage(),
    new RNCViewPagerPackage()
  );
}

Usage

import React from 'react';
import {StyleSheet, View, Text} from 'react-native';
import ViewPager from '@react-native-community/viewpager';

const MyPager = () => {
  return (
    <ViewPager style={styles.viewPager} initialPage={0}>
      <View key="1">
        <Text>First page</Text>
      </View>
      <View key="2">
        <Text>Second page</Text>
      </View>
    </ViewPager>
  );
};

const styles = StyleSheet.create({
  viewPager: {
    flex: 1,
  },
});

Attention: Note that you can only use View components as children of ViewPager (cf. folder /example) . For Android if View has own children, set prop collapsable to false https://reactnative.dev/docs/view#collapsable, otherwise react-native might remove those children views and and it's children will be rendered as separate pages

Advanced usage

For advanced usage please take a look into our example project

API

PropDescriptionPlatform
initialPageIndex of initial page that should be selectedboth
scrollEnabled: booleanShould viewpager scroll, when scroll enabledboth
onPageScroll: (e: PageScrollEvent) => voidExecuted when transitioning between pages (ether because the animation for the requested page has changed or when the user is swiping/dragging between pages)both
onPageScrollStateChanged: (e: PageScrollStateChangedEvent) => voidFunction called when the page scrolling state has changedboth
onPageSelected: (e: PageSelectedEvent) => voidThis callback will be called once the ViewPager finishes navigating to the selected pageboth
pageMargin: numberBlank space to be shown between pagesboth
keyboardDismissMode: ('none' / 'on-drag')Determines whether the keyboard gets dismissed in response to a dragboth
orientation: OrientationSet horizontal or vertical scrolling orientation (it does not work dynamically)both
transitionStyle: TransitionStyleUse scroll or curl to change transition style (it does not work dynamically)iOS
showPageIndicator: booleanShows the dots indicator at the bottom of the viewiOS
overScrollMode: OverScollModeUsed to override default value of overScroll mode. Can be auto, always or never. Defaults to autoAndroid

Preview

Android

horizontalvertical
ViewPagerViewPager

iOS

horizontal - scrollhorizontal - curl
ViewPagerViewPager
vertical - scrollvertical - curl
ViewPagerViewPager

Keywords

FAQs

Package last updated on 26 Feb 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc