Skip to content

解决scrollview滑动不流畅 #44

Description

@jinjiantong

RCTScrollView.m 里找到这个方法

  • (void)handleCustomPan:(__unused UIPanGestureRecognizer *)sender
    {
    //改动地方在这里
    if ([self _shouldDisableScrollInteraction] && ![NSStringFromClass([RCTUIManager JSResponder].class) isEqualToString:@"RCTScrollView"]) {
    self.panGestureRecognizer.enabled = NO;
    self.panGestureRecognizer.enabled = YES;
    // TODO: If mid bounce, animate the scroll view to a non-bounced position
    // while disabling (but only if stopScrollInteractionIfJSHasResponder was
    // called during a pan). Currently, it will just snap into place which
    // is not so bad either.
    // Another approach:
    // self.scrollEnabled = NO;
    // self.scrollEnabled = YES;
    }
    }

Activity

  1. changed the title [-]scrollview滑动不流畅[/-] [+]解决scrollview滑动不流畅[/+] on Jul 3, 2019
  2. geniu-vs commented on Jul 4, 2019

    @geniu-vs

    不是这里的原因,改了没用。
    是外部下拉的scrollView和FlatList的scrollView手势重叠了,
    最终都是作用到RCTScrollView上,
    我把MJScrollView.js里的onScrollShouldSetResponder: this.scrollResponderHandleScrollShouldSetResponder,(触摸开始时是否成为响应者)
    这句话注释掉就可以了,
    但是注释掉后带下拉的sectionList又滑不动了,
    所以我现在还没找到一个好的解决方案。

  3. geniu-vs commented on Jul 8, 2019

    @geniu-vs

    onScrollShouldSetResponder: () => false, sectionList卡顿是因为我在外层使用了react-native-scrollable-tab-view,按照 #20 修改下就好了,不过滑动还是有一点点问题,就是如果里面的FlatList先上滑再下滑,不会触发下拉刷新,因为手势还是作用在FlatList上,要松一次再下拉,手势才会定在外层ScrollView上。

  4. geniu-vs commented on Jul 12, 2019

    @geniu-vs

    这样改有个问题,由于onScrollShouldSetResponder手势被拦截,在左右滑动的时候就会触发list的item点击事件,左右滑动会进入二级页面,对于使用了ScrollableTabView的页面是可怕的,所以这个方案无效

  5. woshi82 commented on Aug 6, 2019

    @woshi82

    最近我也遇到这个问题~ 所以最后是怎么解决的呢?

  6. woshi82 commented on Aug 6, 2019

    @woshi82

    提主的方式有效~值得一试。 仔细看了下我用的Flatlist 中的ScrollView 是我自定义的xxScrollView, 此时就会出现 IOS 滚动不顺滑的现象。

  7. BleachCC commented on Oct 18, 2019

    @BleachCC

    我是单层的Flatlist,使用楼主的方法得到了解决

  8. MackJac commented on Nov 19, 2019

    @MackJac

    is userful

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions