Fatal bug : Flatlist wrong scroll locations bug on RTL on Android
See original GitHub issueDescription
Recently I upgraded from expo 44 to 45 which has "react-native": "0.68.2"
now my app in rtl mode has a lot of problems, for flatlists.
Version
0.68.2
Output of npx react-native info
info Fetching system and libraries information… System: OS: macOS 10.15.7 CPU: (8) x64 Intel® Core™ i7-8550U CPU @ 1.80GHz Memory: 133.48 MB / 16.00 GB Shell: 5.7.1 - /bin/zsh Binaries: Node: 16.16.0 - ~/.nvm/versions/node/v16.16.0/bin/node Yarn: 1.22.19 - ~/.nvm/versions/node/v16.16.0/bin/yarn npm: 8.15.1 - ~/.nvm/versions/node/v16.16.0/bin/npm Watchman: 2022.02.14.00 - /usr/local/bin/watchman Managers: CocoaPods: Not Found SDKs: iOS SDK: Platforms: iOS 14.4, DriverKit 20.2, macOS 11.1, tvOS 14.3, watchOS 7.2 Android SDK: API Levels: 28, 29, 30, 32 Build Tools: 28.0.3, 29.0.2, 29.0.3 Android NDK: Not Found IDEs: Android Studio: 4.0 AI-193.6911.18.40.6626763 Xcode: 12.4/12D4e - /usr/bin/xcodebuild Languages: Java: Not Found npmPackages: @react-native-community/cli: Not Found react: 17.0.2 => 17.0.2 react-native: 0.68.2 => 0.68.2 react-native-macos: Not Found npmGlobalPackages: react-native: Not Found
Steps to reproduce
Add a flatlist in rtl mode and fill it with a few or a lot of items, you’ll get two different bugs. (Probably both are related though)
Snack, code example, screenshot, or link to a repository
I made a snack for it checkout : https://snack.expo.dev/@stevemoretz/ltr-rtl
click on Devices and reload app to make sure it is restarted in rtl mode.
- Look how the top row is attached to the left (This can be fixed by setting a flexGrow)
- Look how the bottom row is started from 4 instead of 1 (There was no way to fix it for me!)

Here’s the IOS result which is fine :
Issue Analytics
- State:
- Created a year ago
- Reactions:2
- Comments:5
Given this a lot of thought even went for another library instead of flatlist but there is no point, as there are many libraries using flatlist internally and all of those are broken too!
React native as its current stage IS LITERALLY UNUNSABLE IN RTL MODE FOR EVERYBODY cause of this!!!
When having a lot of items and scrolling suddenly you get scrolled back to that first wrong position!
This is a serious issue, at least we need to disable rtl for FlatList all together until a fix is found, but there is no option to disable rtl for this component 😦 is there?