Skip to content

[0.57.2] Horizontal scroll view + pagingEnabled / snapToInterval / snapToOffsets bad UX and last item scroll bug  #21643

@chrusart

Description

@chrusart

Environment

  React Native Environment Info:
    System:
      OS: macOS High Sierra 10.13.6
      CPU: x64 Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz
      Memory: 1.08 GB / 16.00 GB
      Shell: 3.2.57 - /bin/bash
    Binaries:
      Node: 8.10.0 - /usr/local/bin/node
      Yarn: 1.10.1 - /usr/local/bin/yarn
      npm: 5.6.0 - /usr/local/bin/npm
      Watchman: 4.7.0 - /usr/local/bin/watchman
    SDKs:
      iOS SDK:
        Platforms: iOS 12.0, macOS 10.14, tvOS 12.0, watchOS 5.0
      Android SDK:
        Build Tools: 23.0.1, 23.0.2, 23.0.3, 25.0.0, 25.0.1, 25.0.2, 25.0.3, 26.0.1, 26.0.2, 27.0.3
        API Levels: 23, 24, 25, 26, 27
    IDEs:
      Android Studio: 3.1 AI-173.4819257
      Xcode: 10.0/10A255 - /usr/bin/xcodebuild
    npmPackages:
      react: 16.5.1 => 16.5.1 
      react-native: 0.57.2 => 0.57.2 

Description

This is a continuation of discussion started in #21116

Android horizontal scroll view with snapInterval/snapOffsets set have constant speed of fling animation which looks bad from UX point of view and is not consistent with iOS.

With snapToInterval set cannot scroll to last item.

Videos about scrolling speed/decelaration:

0.56.1
https://www.dropbox.com/s/kwg3cx0bgbs4k5k/Android_RN_0.56.1_big_screen_width.mov?dl=0
https://www.dropbox.com/s/fjlcjtv0jznbsqx/iOS_RN_0.56.1_big_screen_width.mov?dl=0

0.57.2
https://www.dropbox.com/s/0buhliw0uge52rk/Android_RN_0.57.2_big_screen_width.mov?dl=0
https://www.dropbox.com/s/hnufpzwce5ejfa6/Android_RN_0.57.2_small_screen_width.mov?dl=0

Reproducible Demo

https://snack.expo.io/SkQP6su5Q

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions