Skip to content

ScrollEnabled={false} is not Respected on iOS #1058

Description

@pmaddaloni

scrollEnabled={false} not respected on iOS (Fabric / New Architecture)

Environment

  • Library version: 6.9.1
  • React Native: 0.81.x
  • Architecture: New Architecture (Fabric) enabled
  • Platform: iOS
  • Expo: 54

Description

When scrollEnabled is set to false on PagerView, horizontal swiping is still possible on iOS. The same setup works correctly on Android—swiping does nothing when scrollEnabled is false.

This occurs with the New Architecture (Fabric) enabled. The scrollEnabled prop appears to be applied in updateProps in RNCPagerViewComponentView.mm, but there may be a timing or initialization issue where:

  1. The scroll view is created in willMoveToSuperview / initializeNativePageViewController
  2. updateProps may run before the scroll view exists, or the initial scrollEnabled value is never applied at setup time
  3. The scroll view defaults to scrollEnabled = YES and never receives the false value

Expected behavior

Setting scrollEnabled={false} should prevent horizontal page swiping, matching Android behavior.

Actual behavior

On iOS, the pager still responds to horizontal swipe gestures and changes pages even when scrollEnabled is false.

Workaround

Using react-native-gesture-handler with Gesture.Native() and a Gesture.Pan().blocksExternalGesture(native) to block swipes when scroll should be disabled. This is a reasonable workaround but requires extra dependencies and code.

Related

  • #971 – Accessibility/VoiceOver case where scroll disabled pager still scrolls

Activity

  1. tenerogiacomo commented on Feb 13, 2026

    @tenerogiacomo

    I can confirm I'm experiencing the same issue on iOS 15.8. The problem does not occur on iOS 17+.

    Environment

    React Native: 0.82.0 (CLI, not Expo)
    react-native-pager-view: ^8.0.0
    iOS: 15.8 (affected) | 17+ (working correctly)

    The behavior matches exactly what's described in this issue. It seems to be specific to older iOS versions.

  2. irolinski commented on Feb 22, 2026

    @irolinski

    I'm having the same issue. It started after updating Expo SDK to 54 from 53, weirdly.

    Environment

    React Native: 0.81.5
    react-native-pager-view: ^8.0.0
    iOS: 18.2

  3. mdivya-symplr commented on Mar 23, 2026

    @mdivya-symplr

    I'm also having same issue - the swipe gesture is still functional on the first swipe. After the first swipe completes, the gesture becomes properly disabled as expected.

  4. rvera commented on Mar 24, 2026

    @rvera

    Can confirm this also happens to us, exactly as @mdivya-symplr mentioned

  5. MrRefactor commented on Apr 6, 2026

    @MrRefactor
    Collaborator

    please check with fix from #1071

  6. dereineolli commented on May 4, 2026

    @dereineolli

    Hey, great job!
    I was just wondering if there's a plan to release a patch version too?

  7. MrRefactor commented on May 4, 2026

    @MrRefactor
    Collaborator

    hey @dereineolli I will release it in patch version in following days

  8. MoPrinceps commented on May 14, 2026

    @MoPrinceps

    please what is the fix to this problem, currently facing it on my app also

  9. timhilehin commented on May 14, 2026

    @timhilehin

    Anyone able to find a workaround?

  10. MrRefactor commented on May 14, 2026

    @MrRefactor
    Collaborator
  11. RohiniH-07 commented on May 28, 2026

    @RohiniH-07

    Hey, is it possible to run v8.0.2 with Expo SDK 54?

    I know Expo 54 bundles v6.9.1, but that version has the iOS scrollEnabled={false} bug, and I noticed the fix in v8.0.1/v8.0.2.

    Our project uses newArchEnabled=true so dropping old arch in v7/v8 isn't a blocker, but I'm not sure if v8.0.2 needs a newer React Native than the 0.81.x that ships with SDK 54. Would manually installing it actually work?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions