微信小程序页面左右滑动与上下拉刷新的实现方案

关于上下拉刷新

微信小程序官方建议使用page的上下拉刷新,那么什么时候会触发上下拉刷新呢

page页面上下拉刷新

下拉.jpg
  • 下拉

通过向下滑动页面即可触发page页面的onPullDownRefresh方法

  • 上滑

上滑的触发分两种情况

  • 内容不能充满page
    • 此时你第一次上拉会触发一次onReachBottom
      • 解析:
      • 微信这么做的原因是可以让我们在这里进行一次处理提醒用户
    • 再次上拉不会触发
  • 内容充满page
    • 通过上滑即可触发page页面的onReachBottom方法

scrollview上下拉刷新

scrollview的上下拉刷新是通过方法bindscrolltoupper与bindscrolltolower,更过相关的细节请参考微信小程序scrollview组件

注:scrollview的上下拉刷新并没有页面下拉滑动长条那种显示,只是单纯的触发,如果你想有那种效果需要自己去实现(基于onScroll方法)

想必这也是微信小程序建议使用page刷新的原因

页面左右滑动

左右滑动.jpg

当然可以使用手势进行手势滑动,单如果你知道有个神奇的组件叫做swiper我想你会考虑使用swiper而不是自己去touch

swiper组件的使用请参考微信小程序swiper组件

此时页面布局.jpg

tab下面的每个页面的滑动不一样问题

如果此时,你滑动你会发现每个tab下的页面上下滑动都会一起滑动,为了保证每个tab下的内容自己滑动,此时考虑使用scrollview进行封装

哎呀page的onReachBottom失效了

这个时候你上拉你会发现不会再触发onReachBottom方法,这个原因就在于前面所说的scrollview的滑动与page会冲突,那么此时就需要触发onReachBottom方法触发的内容,与之相关的是scrollview的bindscrolltolower方法,重写这个方法,并将onReachBottom方法内容提出单独分装,一起调用即可

哎呀,有的页面可以在内容页下拉刷新有的不可以

这点的方案目前暂未实现,如果路过的大佬们有解决方案请留言提出或者联系我,发到我的邮箱,小弟在此谢过
为何会有这样的原因呢?
还是scrollview的滑动与page冲突问题,如果你仔细阅读scrollview的文档你会发现scrollview的滑动会屏蔽page的onPullDownRefresh方法,此时需要我们从顶部下拉接口。那么为何有的页面可以下拉呢,这是因为scrollview的内容不足填充整个页面,此时它不与page冲突可以下拉。

总结

微信小程序在实践上不必原生、RN还是有很多限制,由于其属于轻量级的开发工具还是很方便,毕竟人家定位就是小程序~

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,558评论 25 709
  • 给提问的开发者的建议:提问之前先查询 文档、通过社区右上角搜索搜索已经存在的问题。 写一个简明扼要的标题,并且...
    极乐叔阅读 14,770评论 0 3
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,218评论 4 61
  • 突然很想奔跑,撒丫子欢快的跑,去享受操场的风,感受夏日的风急速地穿过黑发。突然很想奔跑,大步的向前跑,双腿灌满力量...
    婷婷在想什么阅读 2,817评论 0 2
  • 我已经记不起那封丑到爆表的表白书我看了多少次,初看它时心中悸动的感觉也早已退去。我与他相识于青涩的时光里,期...
    凉云暮雨阅读 2,350评论 0 1