美文网首页微信小程序开发微信小程序开发微信小程序
微信小程序页面左右滑动与上下拉刷新的实现方案

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

作者: 月半的瘦子 | 来源:发表于2018-01-24 19:54 被阅读1051次

    关于上下拉刷新

    微信小程序官方建议使用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还是有很多限制,由于其属于轻量级的开发工具还是很方便,毕竟人家定位就是小程序~

    相关文章

      网友评论

      • 木马不在转:你好,我也想实现你这种效果,能看下你是怎么写的吗?

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

      本文链接:https://www.haomeiwen.com/subject/owqpaxtx.html