- Add the ability to render either a
ScrollViewcomponent or aFlatListone (default) (see propuseScrollView) - Add support for versions of React Native <
0.43(see this note) - Add support for custom animations (see props
customAnimationTypeandcustomAnimationOptions) - Add method
triggerRenderingHack()to work around a randomFlatListbug that keeps content hidden until the carousel is scrolled - Hack around
ScrollView/FlatListimage rendering issues on Android - Fix issue with tappable dots when loop is enabled
- Fix
snapToItemcall that results in snapping to the wrong item whenloopis enabled - Fix issue that, in some use cases, prevents every items but the initial ones to be rendered
- On Android, prevent loop and callback issues because scroll offset's value doesn't return an integer
- Add prop
inactiveSlideShift(see #204) - Expose
FlatList's propinverted(use at your own risk since it will mess with the current handling of RTL layouts) - Set
removeClippedSubviewstotrueby default
- Fix issue with possible faulty index when
loopClonesPerSideis greater than data length - Guard against
setNativeProps()beingundefined - On Android, make sure that the first item has the proper active style after init
- On iOS, remove the feature "snap as soon as the previous/next item becomes active when
lockScrollWhileSnappingis enabled" since it messes with direct calls tosnapToItem()
- Prevent issue on iOS when
enableSnapis set tofalsewhilelockScrollWhileSnappingis set totrue
- Fix issue with
lockScrollWhileSnappingwhen no callback was provided Paginationcomponent: add propsactiveOpacityanddotContainerStyle
- Fix issue when initializing the carousel with empty data
- Make tappable
PaginationDotsnaps to the right item when loop is enabled
- Bring in the most wanted 'infinite loop' feature 🎉 (see the 'Loop' section for more info about the new props
loopandloopClonesPerSide) - Improve Android behavior when momentum is disabled
- Guard against potential errors when component is unmounted
- Add prop
lockScrollWhileSnappingto improve behavior when momentum is disabled
- Fix issue with callback not fired when doing a long swipe
- Fix RTL issues
- Fix issue with active item when
enableMomentumwas set totrue - Fix issue with overlapping items (thanks @henninghall)
ParallaxImagecomponent: allow overriding default stylesPaginationcomponent: adapt to RTL layouts
- Fix issue with active item when no callback has been specified (introduced in version
3.2.0)
- Refactor callback handling. Make sure to use the new prop
callbackOffsetMarginif you experience missed callbacks. - Make item's scale and opacity animations follow scroll value (thanks @hammadj)
Paginationcomponent: make dots tappable with new propstappableDotsandcarouselRef(see the example)- Fix issue when carousel has been unmounted but parent container requires to re-render
- Fix state and scroll issues when the currently active item is being dynamically removed
- Improve snap feeling when momentum is disabled (default)
- Add prop
callbackOffsetMargin - Remove props
animationFunc,animationOptions,scrollEndDragDebounceValue,snapOnAndroid, anduseNativeOnScroll
Paginationcomponent: add new props for advanced customization
- Do not use this version as some temporary code was pushed to
npmby mistake. Make sure to use version3.1.0instead.
- Plugin is now built on top of
FlatList, which allows for huge performance optimizations. From now on, items must be rendered using propsdataandrenderItem.
- Add
ParallaxImagecomponent (see the specific documentation here) - Add prop
activeSlideAlignment - Fix issue with autoplay when setting
scrollEnabledtofalse - Prevent going back to the first item when overscrolling the last one
- Prevent callback from being called at the wrong time in some specific scenarios
- Add
Paginationcomponent (see the specific documentation here) - Allow
firstItemto be changed dynamically - Allow
0value forcarouselHorizontalPaddingandcarouselVerticalPadding(thanks @bonbonez) - Keep the easing of slide's opacity animation linear
- Use native driver for slide's animation (can be overridden via
animationOptions)
- Fix issue when snap is disabled
- Refactor callback handling to provide a more reliable solution when momentum is disabled
- Fix issue with parallel animations (thanks @jnbt)
- Prevent calls to
undefinedinterpolators when working with dynamic slides (thanks @cskaynar) - Improve vertical mode
- Add prop
scrollEndDragDebounceValue - Expose current scroll position with
this.currentScrollPosition - Remove props
scrollEndDragThrottleValueandsnapCallbackDebounceValue(usescrollEndDragDebounceValueinstead)
- Fix issue that prevented inactive styles of first and last items to be applied when using
snapToPrevandsnapToNextmethods
- Do not mark
sliderWidthandsliderHeightas required - Add warnings when properties specific to carousel's orientation haven't been set
- Implement vertical mode (prop
vertical) - Make sure that current active item is properly updated when snapping
- Prevent issues when 'sliderWidth' is smaller than viewport's width
- Recalculate card positions on layout to handle rotation (thanks @andrewpope); make sure to read this note
- Refresh card positions if slider and/or item's dimensions are updated (thanks @hoangnm)
- Add props
scrollEndDragThrottleValueandsnapCallbackDebounceValue - Expose
View'sonLayoutprop - Deprecate prop
onScrollViewScroll
- Add prop
onScrollViewScroll
- Default value for
showsHorizontalScrollIndicatoris nowfalse - Expose
ScrollView'sonSscrollprop (thanks @radko93)
- Do not trigger
onSnapToItemwhen snapping back to the same slide (thanks @rgabs) - Add prop
carouselHorizontalPaddingto override container's inner padding (thanks @skeie)
- Ensure compatibility with RN 0.43 (previous version of plugin's dependency
react-addons-shallow-comparewas breaking with React 16) - Fix issue with padding on iOS that could cause the carousel to snap back when its last item was clicked
- Add RTL support
- Keep current active item when adding slides dynamically
- Prevent invalid
firstItemnumber - Add prop
activeSlideOffset
- Prevent error when carousel has only one child (thanks @kevinvandijk)
- Fix issue when appending dynamic slides (the first one was ignored)
- Fix edge case that prevented the first slide from being focused when swiping back with momentum enabled
- Bump example's RN version to 0.42.3
- Make sure that scroll indicator is hidden by default
- Fix un-handled exception with interpolators (thanks @chitezh)
- Items are now direct children of the
<Carousel />component, which makes it easier to use (thanks @Jonarod) - Props
itemsandrenderItemhave been removed
- Due to some touch events being buggy, rework methods so the children will receive touch events on Android
- Add prop
enableMomentum - Fix an infinite-loop on iOS with momentum enabled
- Fix the snapping effect when releasing touch without interia on iOS with momentum enabled
- Fix autoplay on Android, it should start and stop properly and stop being triggered while swiping
- Use
View.propTypes.styleinstead ofPropTypes.numberin styles validation (thanks @pesakitan22)
- Items length can now be changed on-the-fly (thanks @superical)
- Now handling momentum (thanks @FakeYou)
- Better update strategy with shallowCompare
- Add
snapToNext(),snapToPrev(),currentIndexmethods and properties
- Properly center on first item when mounting component on Android (potentially iOS too)
- Pass the item data as the 2nd param of
onSnapToItemcallback
- Fix reference call when the component has been unmounted
- Add prop
onSnapToItem
- Center slides properly
- Handle one slide only
- Add props
inactiveSlideScale,inactiveSlideOpacity,containerCustomStyleandcontentContainerCustomStyle