bug report
yes
Android
yes
Environment:
React: 16.0.0-beta.5
React native: 0.51
react-native-snap-carousel: 3.3.4
Target Platform:
Android (6.0)
iOS (11)
-->
(Write your answer here.)
scroll to item number specified in firstItem
does not scroll
This might be related to https://stackoverflow.com/questions/33208477/react-native-android-scrollview-scrollto-not-working
I fixed it when using scrollTo in my component in a hacky way by introducing a 200ms delay or so on android.
Can you please provide a Snack example in which the issue can be reproduced?
I am experiencing this too.
I have a list of 30 product pages. If item 0 - 5 is clicked to open as firstItem in the carousel it works as expected. However, clicking on any higher index in the list will result in index 5 always being the first visible item. Currently getting around it by using ScrollList on Android only.
@eoghanmccarthy I don't know if you're referring to the same issue. Yours is a well-known and unfortunate FlatList bug.
See #363 for more info. #250 seems like the only way to get rid of it...
Is it possible that the problem exists only on RTL devices?
Hey @eoghanmccarthy please use useScrollView into your Carousel component, it will solve your problem.
<Carousel
data={photos}
renderItem={this._renderItem}
sliderWidth={sliderWidth}
itemWidth={itemWidth}
firstItem={this.state.selectedIndex}
contentContainerCustomStyle={styles.sliderContentContainer}
layout={"default"}
loop={true}
onSnapToItem={slideIndex =>
this.setState({ selectedIndex: slideIndex })
}
useScrollView
/>
@AshishCd you saved my day. Thank you.
@AshishCd this causes performance problems. I think this issue can be closed in favour of #538 as that has a simple reproduction case for both Android and iOS.
@AshishCd Thank you
Most helpful comment
Hey @eoghanmccarthy please use useScrollView into your Carousel component, it will solve your problem.
<Carousel data={photos} renderItem={this._renderItem} sliderWidth={sliderWidth} itemWidth={itemWidth} firstItem={this.state.selectedIndex} contentContainerCustomStyle={styles.sliderContentContainer} layout={"default"} loop={true} onSnapToItem={slideIndex => this.setState({ selectedIndex: slideIndex }) } useScrollView />