《React-Native系列》23、 js实现下拉刷新效果(Android和iOS通用)

这几天项目里有这么个需求:一个列表页需要支持下拉刷新和上拉刷新。

其中上拉刷新效果已经实现,具体思路见:《React-Native系列》19、 ListView组件之上拉刷新(iOS和Android通用)


今天我们重点来说说下拉刷新的实现。

ReactNative提供一个组件RefreshControl,但是不支持自定义刷新UI,我们的RN项目只是整个APP的一部分,需要和原生的UI保持一致,所以被我们所弃用。


刚开始,我们自己用LIstView来实现。

利用onPanResponderMove和onPanResponderRelease这两个方法来控制坐标,当下拉到阈值时,触发下拉事件,在iOS上没有什么问题。

但是我们迁移到Android上的时候,发现各种蛋疼的问题:

1、MEIZU手机上对onPanResponderMove的响应不灵敏

2、坐标值出现各种异常的值


咋办? 问题还得解决不是。

后来的实现方案是:

利用了一个开源的第三方库:react-native-pull ,感兴趣的可以去看看,提供了Demo,使用比较简单。

简介如下:

react-native-pull包含两个(PullView & PullList)可以实现下拉刷新的react native组件,可支持android & ios,简单易用!
纯js代码,基于ScrollView & ListView封装. 比scrollview & ListView更强大,有三个下拉状态: pulling, pullok, pullrelease. PullView可以让你使用refreshControl或提供的相关属性实现类似于scrollview的pull-to-refresh. PullList可以让你使用ListView的所有属性。你也可以使用topIndicatorRender和onPushing方法实现带有动画效果的自定义的topIndicator头部。

目前还没有发现什么bug,关键是这个组件可以支持自定义UI。






  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值