-
Notifications
You must be signed in to change notification settings - Fork 2.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
snapToItem/snapToNext not working on Android devices when called from callbacks inside step #552
Comments
Hi @kgorol, Can you tell me if this works properly with version |
Thanks for replying @bd-arc, Works like a charm on |
Still it's not working for me |
adding timeout in the current version works for me :) less than 250 will not snap to next |
works for me! thanks :) |
Works for me too! Thanks! |
I think we shouldn't let this end here... |
@Inovassist-dev I definitely agree that we need to get to the root of it. The problem is that I need to know first and foremost if this is a bug introduced in But so far I've received contradictory answers... |
Yeah, I understand... |
Have the same issue running on an iOS device: snapToItem(), snapToPrev(), and snapToNext() don't work. |
The problem is here. |
Also not working for me on versions 3.2 - 3.8, adding timeout does work, but the fix is far too slow and hacky to be used. Would like to know how this could be fixed as well. |
@QQizi any thoughts on how to fix? |
+1 |
I encounter the same problem on Android (not tested on IOS) However, it was working with exactly the same code on react-native |
@AlexandreMaistret Thank you for the helpful feedback! Unfortunately your conclusion is the absolute worst case scenario... And I don't see anything that is supposed to affect |
@bd-arc I know it is quite a really bad scenario because I looked also the releases notes of The workaround with Just to give you more details on the code: I didn't tried with iOS since I don't have a Mac. |
In iOS 12.4.1 with React Native 0.60.5, 3.7.5 and 3.8.1 versions work fine, also in production. I will test with React Native 0.59.4 soon, but I think that will work well. |
Is a work around if you're sceptical when upgrading dependancies. |
This workaround |
You just saved the day. I almost forgot about this javascript context trick that is very usefull sometimes... thank you! |
The only workaround that works for me is enabling momentum by setting props |
This solution |
The same, the animation disappears in both cases (only on android). |
I'm facing the exact same problem with @valeriik and @carmenchapa. I tried to use |
@9600baud this thread documents the issue we are seeing on android. |
Just for a little further information (on the most recent
But if you call
|
Update: Pull Request #648 fixes this! Are there any maintainers (@bd-arc maybe?) that can take a look to get this fix out? |
@bfaulk96 Thanks for the info! I plan on releasing an update very soon that should enhance the carousel from a "feeling" standpoint. I'll make sure to merge the PR you mentioned beforehand. |
On android animation disappear |
PR merged and published in version |
Just realized there was a potential issue with the PR. Given the fact that |
I think I have the same issue. I just tried the following code: this.setState(
{
screens: newScreens,
},
() => {
setTimeout(() => this.carousel.snapToNext(), 500);
},
); It updates the state by updating one or more screens to the current screens and afterwards snaps to the next. It ends up at the correct screen, unfortunately mostly without an animation. Sometimes it animates. Version |
When using snapToItem(), the first time the callback onSnapToItem() is not being called. However the _snapToItem is getting called twice, once with the old index. This issue persist even in "react-native-snap-carousel": "^3.8.4". The timeout solution works fine but is there a better way? |
I have the same issue, I have to use a setTimeout with snapToItem As you can see, the selected item is 85, but the snapToItem have the old one the 88. If I use a setTimeout it works, but does not look very elegant. |
Did anyone found a solution for the animation which disappears on Android? |
É uma pena que uma lib tão boa esteja abandonada! Até agora nada de soluções :( |
I had issue to snap zero and it worked for me. |
I don't know if this is really relevant to this issue, but |
This comment was marked as spam.
This comment was marked as spam.
The issues still persist on the latest version for RN 0.66 and Router Flux4.3.1... the issue still occurs. Any updates here? |
Upgraded from |
This happened to me when the items.length>15. It is possibly because the VirtualizedList internally has set initialNumToRender=15. and any item with index>15 will fail in snapToItem() because it is not there. For a long time it looked like a random issue. Works ok when initialNumToRender increased to a larger number but FPS drops drammatically hence not feasible. This is a bug IMO. Trying to figure it out. |
Probably it is not the issue but maybe it will help somebody. I had a problem with snapToNext (v3.9.1 of the lib) and animation of dots, it didn't work on Android (the current index never changed) therefore I couldn't implement a basic feature to move to the next slide. The problem has been solved with a simple component state which saves the current index of the slider (starts from 0) and instead of snapToNext used snapToItem(state + 1) and afterwards setState(state + 1). Also I have these props on Carousel component:
|
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 only.
Is the bug reproductible in a production environment (not a debug one)?
I think so.
Environment
Expo with v33 SDK
Expected Behavior
It should go to specified page or to the next.
Actual Behavior
On iOS device it is working fine, but on Android nothing happens.
Reproducible Demo
https://snack.expo.io/SJxF4GwlB
Steps to Reproduce
The text was updated successfully, but these errors were encountered: