React Native ScrollView Empty Space (flexGrow behaviour)
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 127k
- Forks
- 25.3k
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 4
Description
Description
Please refer to attached images for context.
The issue is that the ScrollView component has added extra spacing at the bottom which is coloured red; this should not be there. The expected behaviour is that the green area is directly below the ScrollView content (blue); the red should never exist.
The blue area is not scollable when there is enough room and should become scrollable when there's not enough room.
Images 2 and 3 are the expected behaviour.
Steps to reproduce
- Run the attached expo snack and run on an Android device
- See how there is red, this should not be there and the green should be directly below the blue
- Change
Array(5)to something larger like 15; blue expands until green has hit the bottom. Blue now becomes scrollable; this is expected. - The
ScrollViewhas the style red to illustrate that theScrollViewis filling the space regardless of it's content.`
React Native Version
0.72.4
Affected Platforms
Runtime - Android
Output of npx react-native info
System:
OS: Linux 5.15 Ubuntu 20.04.6 LTS (Focal Fossa)
CPU: (16) x64 11th Gen Intel(R) Core(TM) i9-11950H @ 2.60GHz
Memory: 33.04 GB / 62.00 GB
Shell:
version: 5.0.17
path: /bin/bash
Binaries:
Node:
version: 21.4.0
path: /home/linuxbrew/.linuxbrew/bin/node
Yarn:
version: 1.22.19
path: ~/.nvm/versions/node/v18.14.0/bin/yarn
npm:
version: 10.2.4
path: /home/linuxbrew/.linuxbrew/bin/npm
Watchman:
version: 20230430.125247.0
path: /usr/local/bin/watchman
SDKs:
Android SDK: Not Found
IDEs:
Android Studio: Not Found
Languages:
Java:
version: 11.0.21
path: /usr/bin/javac
Ruby:
version: 2.7.0
path: /usr/bin/ruby
npmPackages:
"@react-native-community/cli": Not Found
react:
installed: 18.2.0
wanted: 18.2.0
react-native:
installed: 0.72.10
wanted: 0.72.10
npmGlobalPackages:
"*react-native*": Not Found
Android:
hermesEnabled: false
newArchEnabled: false
iOS:
hermesEnabled: false
newArchEnabled: Not found
Stacktrace or Logs
NA.
Reproducer
https://snack.expo.dev/@c-gibson-emesent/honest-red-scones
Screenshots and Videos
Image 1: Current behaviour when ScrollView is not scrollable
Image 2: Expected look / behaviour when the ScrollView is not scrollable
Image 3: How it should look when the items expand the ScrollView until there's no more room and the ScrollView becomes scrollable
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 by running the linked Expo Snack on an Android device and compare the ScrollView behavior with Array(5) and Array(15). Trace the React Native 0.72 ScrollView and flexGrow behavior responsible for the red empty space. Done means short content ends directly above the green area, while longer content expands until the boundary and then scrolls.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react-native
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100