Skip to content

V2: scrollToIndex with viewPosition becomes unreliable when approaching end of list #1923

@manuhook

Description

@manuhook

Description

In FlashList v2, the scrollToIndex with viewPosition method becomes unreliable when scrolling towards the end of a list. The scroll behavior that works perfectly for the first ~90% of items suddenly stops showing at the position requested for the remaining items. viewPosition is ignored for last items in the list.

✅ scrollToIndex was working well on V1 for all index in the list.

Expected behavior

scrollToIndex with viewPosition should consistently scroll to the target item regardless of its position in the list.

Actual Behavior

✅ Works correctly for items in the first ~90% of the list
❌ Becomes inconsistent/unreliable for items in the last ~10% of the list
❌ Increasing bottom space to allow the scrolling doesn't resolve the issue
❌ The scroll simply stops working as expected
❌ Disabling maintainVisibleContentPosition is not helping

Reproduction

1- Create a FlashList
2-Use scrollToIndex with viewPosition to scroll to items
3-Observe that scrolling works fine for items with index < 16 (in a 23-item list)
4-Try scrolling to items with index > 16 - the scroll behavior becomes inconsistent, the position wanted is not respected.

Platform

  • iOS
  • Android
  • Web (if applicable)

Environment

React Native info output:
System:
  OS: macOS 26.0
  CPU: (10) arm64 Apple M1 Max
  Memory: 222.17 MB / 32.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 22.19.0
    path: ~/.nvm/versions/node/v22.19.0/bin/node
  Yarn:
    version: 1.22.19
    path: /opt/homebrew/bin/yarn
  npm:
    version: 11.6.0
    path: ~/.nvm/versions/node/v22.19.0/bin/npm
  Watchman:
    version: 2025.05.19.00
    path: /opt/homebrew/bin/watchman
Managers:
  CocoaPods:
    version: 1.16.2
    path: /opt/homebrew/bin/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 25.0
      - iOS 26.0
      - macOS 26.0
      - tvOS 26.0
      - visionOS 26.0
      - watchOS 26.0
  Android SDK: Not Found
IDEs:
  Android Studio: 2024.2 AI-242.23339.11.2421.12550806
  Xcode:
    version: 26.0.1/17A400
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 17.0.5
    path: /usr/bin/javac
  Ruby:
    version: 2.6.10
    path: /usr/bin/ruby
npmPackages:
  "@react-native-community/cli":
    installed: 20.0.2
    wanted: latest
  react:
    installed: 19.1.0
    wanted: 19.1.0
  react-native:
    installed: 0.81.4
    wanted: 0.81.4
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: true
iOS:
  hermesEnabled: true
  newArchEnabled: true


FlashList version:

Additional context

Checklist

  • I've searched existing issues and couldn't find a duplicate
  • 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

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions