Skip to content

Jitter/flickering when scrolling upwards through variable-height items after prepending data #2052

@jessejanderson

Description

@jessejanderson

Description

When items are prepended to a FlashList with variable-height content, scrolling upwards through the newly added items causes visible jitter/flickering. The content visibly jumps as items are measured during scroll.

Current behavior

  • Fixed-height items: No jitter
  • Variable-height items: Jitter present
  • FlatList does NOT exhibit this issue on iOS

FlashList (jitter)

ScreenRecording_01-03-2026.17-52-06_1.mp4

FlatList (no jitter)

ScreenRecording_01-03-2026.17-51-39_1.mp4

Expected behavior

Smooth scrolling without significant jitter when scrolling upwards through prepended variable-height items.

Reproduction

Expo Snack or minimal reproduction link:

https://snack.expo.dev/@jessejanderson/flash-list-jitter

Platform

  • iOS
  • Android
  • Web (if applicable)

Environment

FlashList version: 2.2.0
React Native version: 0.81 (Expo SDK 54)

Additional context

In the app where I first ran into this issue, I've tried a number of recommendations from the v2 documentation and other sources, but none of them have resolved the issue.

  • Memoized props
  • Proper keyExtractor usage to return unique, stable keys for each item.
  • Using getItemType to better predict height for different item types.
  • Tested various drawDistance values. Nothing but extremely high values (10000+) made a significant difference.
  • Deferred state updates during scroll.
  • scrollEventThrottle={16}
  • Confirmed no key props
  • A bunch of random other things. 🙃

None of these resolved the issue (other than the extremely high drawDistance values, which eventually break when the prepended/new item count is high enough).

Checklist

  • I've searched existing issues and couldn't find a duplicate
    (there are some similar issues, but involve multi-column layouts or other more complex setups)
  • I've provided a minimal reproduction (Expo Snack preferred)
  • I'm using the latest version of @shopify/flash-list
  • I've included all required information above

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1Important but not urgentbugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions