Layout Configuration
If true, renders items next to each other horizontally instead of stacked vertically.
Multiple columns can only be rendered with
horizontal={false} and will zig-zag like a flexWrap layout. Items should all be the same height - masonry layouts are not supported (except on New Architecture with masonry prop).For masonry layouts with varying item heights, use the
masonry prop (New Architecture only).Enable masonry layout for grid layouts with varying item heights.
If enabled, MasonryFlashList will try to reduce difference in column height by modifying item order.
Styling Props
Style for the RecyclerView’s parent container. Please avoid anything which can mess size of children in this view. For example, margin is okay but padding is not.
To enable
overflow: "visible", you must also set it on the internal ScrollView via overrideProps:Style for the internal content container (inherited from ScrollView).
Allows overriding internal ScrollView props. Props provided here are spread onto the internal ScrollView after all other props, so they take highest priority.This can be useful for cases where you need to set a style on the ScrollView itself rather than the outer container. For example, to enable visible overflow you can combine this with the Type Definition:
style prop.Sticky Headers
An array of indices marking items that should stick to the top of the screen when scrolling. Inherited from ScrollView.
Configuration options for sticky headers.Properties:
useNativeDriver(boolean, default:true): If true, the sticky headers will use native driver for animationsoffset(number, default:0): Offset from the top of the list where sticky headers should stick. Useful when you have a fixed header or navigation bar at the top of your screenhideRelatedCell(boolean, default:false): When a sticky header is displayed, the cell associated with it is hiddenbackdropComponent(React.ComponentType | React.ReactElement): Component to render behind sticky headers (e.g., a backdrop or blur effect). Renders in front of the scroll view content but behind the sticky header itself
Callback invoked when the currently displayed sticky header changes. Receives the current sticky header index and the previous sticky header index.This is useful for tracking which header is currently stuck at the top while scrolling. The index refers to the position of the item in your data array that’s being used as a sticky header.
Refresh Control
If provided, a standard RefreshControl will be added for “Pull to Refresh” functionality. Make sure to also set the
refreshing prop correctly.Set this true while waiting for new data from a refresh.
Set this when offset is needed for the loading indicator to show correctly.
Lifecycle Callbacks
This event is raised once the list has drawn items on the screen. It also reports
elapsedTimeInMs which is the time it took to draw the items.This is required because FlashList doesn’t render items in the first cycle. Items are drawn after it measures itself at the end of first render. If you’re using ListEmptyComponent, this event is raised as soon as ListEmptyComponent is rendered.Called when the layout is committed. Can be used to measure list.