React-native-snap-carousel: firstItem not working on Android

Created on 6 Feb 2019  路  8Comments  路  Source: meliorence/react-native-snap-carousel

Is this a bug report, a feature request, or a question?

bug report

Have you followed the required steps before opening a bug report?

Have you made sure that it wasn't a React Native bug?

yes

Is the bug specific to iOS or Android? Or can it be reproduced on both platforms?

Android

Is the bug reproductible in a production environment (not a debug one)?

yes

Environment

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.)

Expected Behavior

scroll to item number specified in firstItem

Actual Behavior

does not scroll

Reproducible Demo

  1. use firstItem on android.

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.

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 />

All 8 comments

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

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Murena7 picture Murena7  路  3Comments

KarlosQ picture KarlosQ  路  4Comments

littlehome-eugene picture littlehome-eugene  路  3Comments

niloufarMakhzani picture niloufarMakhzani  路  4Comments

NikitaNeganov picture NikitaNeganov  路  3Comments