Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

React Native ScrollView with pagination + showing part of the next page

I'm trying to create an interface where cards are presented one at a time to the user. The user can scroll left and right in a paged fashion. I also want to view a small amount of the card to the left and the right of the current card, as a hint that there is more to see. A very rough example of this would be:

enter image description here

Current code is:

<ScrollView
   style={{width: Dimensions.get('window').width, height: 300}}
   horizontal={true}
   pagingEnabled={true}
   showsHorizontalScrollIndicator={false}
   alwaysBounceHorizontal={false}
   automaticallyAdjustContentInsets={false}>
    <View style={{width: 200, height: 300}}></View>
    <View style={{width: 200, height: 300}}></View>
    <View style={{width: 200, height: 300}}></View>
 </ScrollView>
like image 611
Giffo Avatar asked Aug 10 '17 16:08

Giffo


Video Answer


1 Answers

I think that my answer to this SO question might help you.

To sum up, you absolutely can create this kind of layout with ScrollView or, even better, FlatList. However, there are two tricky parts:

  • The snapping effect, for which you can use props snapToInterval and snapToAlignment. Unfortunately, these are iOS-only.

  • The animation of the inactive slides, which needs a lot of custom logic.

A co-worker and I created a plugin that answers this particular need. We ended up open-sourcing it, so it's all yours to try: react-native-snap-carousel.

The plugin is now built on top of FlatList (versions >= 3.0.0), which is great to handle huge numbers of items. It provides previews (the effect you're after), snapping effect for iOS and Android, parallax images, RTL support, and more.

You can take a look at the showcase to get a grasp of what can be achieved with it. Do not hesitate to share your experience with the plugin since we're always trying to improve it.

react-native-snap-carousel archriss showcasereact-native-snap-carousel archriss aix


Edit : two new layouts have been introduced in version 3.6.0 (one with a stack of cards effect and the other with a tinder-like effect). Enjoy!

react-native-snap-carousel stack layoutreact-native-snap-carousel tinder layout

like image 177
bend Avatar answered Nov 14 '22 20:11

bend