flash-list: ListEmptyComponent can't use full height of view
Current behavior
I need to render a ListEmptyComponent which uses the full height of the current view. To make this work with react natives FlatList I can apply a contentContainerStyle with flex: 1. Sadly this won’t work with the FlashList as it doesn’t allow flex in a contentContainerStyle.
- Why is
flexnot allowed for forcontentContainerStyle? - Is there another way, to make it work with FlashList, without the usage of
contentContainerStyle?
Expected behavior
There should be the possibility to render ListEmptyComponent with flex: 1 / height: "100%"
To Reproduce
Use any ListFooterComponent and try to fill the whole view with it.
Platform:
- iOS
- Android
Environment
"@shopify/flash-list": "1.4.3"
"react-native": "0.71.7",
About this issue
- Original URL
- State: open
- Created a year ago
- Reactions: 36
- Comments: 26
Hi, we’re facing exactly the same issue. Snack: https://snack.expo.dev/@picnic-harry/flashlist-listemptycomponent-flex-repro
There are existing props for
ListHeaderComponentStyleandListFooterComponentStyle. If you don’t plan on supporting arbitrarycontentContainerStyle, then a correspondingListEmptyComponentStyleprop would fix this problem.need this please.
This works perfectly! I can’t imagine why it skipped my mind. Thanks 👍
Same Issue Work around for now. Used scrollview to mimic list empty component with pull to refresh (Refresh Control).
EmptyView.tsx
have you tried checking if you list data is empty then displaying the empty component manually?
Similar problem here. I need to center the ListEmptyComponent. Before migrating to FlashList
contentContainerStyle={{ flexGrow: 1 }}fixed the issue.It is a common use-case to allow the empty content to be centered I guess. Currently I’m re-using the
estimatedListSizebut it’s not alway’s perfectly centered of course.