Android - Animated.event useNativeDriver:true sets incorrect translate position when scrolling interrupted by user
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 127k
- Forks
- 25.3k
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 4
Description
Description
I have 2 transform translateY animation. When the useNativeDriver:false, there is no issue except performance. I can see the animation moves couple frames behind from native animation. When the useNativeDriver:true, while moving fast the component jumps around (usually to final position if there were no distruption to moementum scroll)
Steps to reproduce
- Install the application to you andorid using
npx expo run:android --devicewhile useNativeDriver: true - Make a slide with momentum and while momentum exists stop and make small movement and remove you finger from screen. (see the video)
React Native Version
0.77.2
Affected Platforms
Runtime - Android
Output of npx @react-native-community/cli info
info Fetching system and libraries information...
System:
OS: Windows 10 10.0.19045
CPU: (16) x64 Intel(R) Core(TM) i7-10870H CPU @ 2.20GHz
Memory: 17.67 GB / 31.84 GB
Binaries:
Node:
version: 22.14.0
path: C:\Program Files\nodejs\node.EXE
Yarn:
version: 1.22.22
path: ~\AppData\Roaming\npm\yarn.CMD
npm:
version: 11.2.0
path: C:\Program Files\nodejs\npm.CMD
Watchman: Not Found
SDKs:
Android SDK:
API Levels:
- "22"
- "33"
- "33"
- "33"
- "34"
- "35"
Build Tools:
- 30.0.2
- 30.0.3
- 33.0.1
- 34.0.0
- 35.0.0
- 35.0.1
System Images:
- android-34 | Google APIs Intel x86_64 Atom
- android-35 | AOSP ATD Intel x86_64 Atom
- android-35 | Intel x86_64 Atom
- android-35 | Google APIs Intel x86_64 Atom
Android NDK: Not Found
Windows SDK:
AllowDevelopmentWithoutDevLicense: Enabled
Versions:
- 10.0.19041.0
- 10.0.22621.0
IDEs:
Android Studio: AI-242.23726.103.2422.13016713
Visual Studio:
- 17.13.35825.156 (Visual Studio Community 2022)
Languages:
Java: 17.0.7
Ruby: Not Found
npmPackages:
"@react-native-community/cli":
installed: 15.1.3
wanted: ^15.1.0
react:
installed: 18.3.1
wanted: 18.3.1
react-native:
installed: 0.77.2
wanted: ^0.77.2
react-native-windows: Not Found
npmGlobalPackages:
"*react-native*": Not Found
Android:
hermesEnabled: true
newArchEnabled: true
iOS:
hermesEnabled: Not found
newArchEnabled: Not found
info React Native v0.78.2 is now available (your project is running on v0.77.2).
info Changelog: https://github.com/facebook/react-native/releases/tag/v0.78.2
info Diff: https://react-native-community.github.io/upgrade-helper/?from=0.77.2&to=0.78.2
info For more info, check out "https://reactnative.dev/docs/upgrading?os=windows".
Stacktrace or Logs
N/A
Reproducer
https://snack.expo.dev/@kocburak/usenativedriverbug
Screenshots and Videos
https://github.com/user-attachments/assets/54fe474c-1fdb-4efd-8f84-137afce9465b
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the linked Snack reproducer and run it on Android with useNativeDriver enabled. Reproduce an interrupted momentum scroll using Animated.event and compare it with useNativeDriver disabled. Done means the translated component no longer jumps to an incorrect or final position after the gesture is interrupted.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, react-native
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100