ionic上拉加载更多安卓上出现无限调用loadmore方法的情况

ionic上拉加载更多安卓上出现无限调用loadmore方法的情况,在ios上一点问题都没有、这个问题困扰一两个星期吧、然后放了一下、继续做其他、今天无意间我又和这问题对上了、我就不信解决不了它、好啦我们先来看看代码、这是上拉加载更多、on-infinite这个事件会在我们上拉到底部的时候触发、ng-if是判断是否还有下一页、当ng-if为false的时候就不再去触发on-infinite这个事件了、现在我遇到的问题是这样的、

在ios上很正常、一开始加载10条记录、然后我下拉到底部的时候再去懒加载10条、类似分页、在ios上和谷歌浏览器上是没问题的、其实谷歌浏览器默认是使用ios的样式的、包括它的动画等等、ionic为安卓和ios适配了两套主题、也有为了性能考虑、在ios上各种动画加特效、在安卓上其实是禁用了很多效果的、反正就是为了安卓考虑特地为安卓准备的一套、因为如果安卓也用ios的估计在一些低端机里面卡成狗、废话不多说、现在出现的这个问题只是在安卓上才会出现、就是我一进入页面的时候那个上拉加载更多的事件就会一直的触发、因为我有加ng-if判断所以直到加载完所有数据之后才会停止、这显然不是我们想要的、我都还没看到下面呢、或许我根本就不会拉到下面你就给我在后面一直的加载数据、而且这里有个问题、虽然说是异步的、但是他在加载的时候会卡住我们在点其它tab的时候没反应的因为给数组加数据这方法总不可能异步的吧、除非你给他搞个线程、h5不是有个多线程嘛、不过我们这里没必要蛤、

说了那么多废话我们直接说解决方案,其实方案很简单、有两个、第一个其实是最粗暴的也是我最不喜欢的、在config里面加上这个 ionic.Platform.setPlatform('ios');这句话是什么意思呢、就是不区分安卓和ios平台统一就是ios平台。、这样就统一一种样式、不区分ios和安卓了、这个方法对于想统一一种样式的友友来说很实用、前些日子就有朋友问到这个问题、群里有个哥们说直接改他源码的样式、其实没必要、最简单的就是这句话就搞定、

为毛我说这种方式我不喜欢,因为这种方式一搞那ionic为了安卓的那些考虑不就木有了吗、对安卓的一些兼容和性能考虑都没了、所以本人不太喜欢、坚决的放弃了这种方式、今天心血来潮又搞了一下终于解决了、当当当很简单就是在ion-content里面加上这句overflow-scroll="false"

这下问题圆满解决了,我们来分析一下为什么蛤

overflow-scroll这句话代表啥意思呢、其实是这样的这句话为true的时候是代表滚动的时候使用原生的滚动条、也就是浏览器的啦、如果为false的话就是使用scroll的、用过iscroll的都知道、iscroll里面你需要回弹效果什么的其实用的是iscroll的滚动、如果不用的话是没有那些效果的、ionic里面也一样、其实为啥会出现这种情况在安卓上会无限加载呢、因为安卓上默认这个值是为true的也就是使用浏览器原生的滚动、也许是为了性能考虑吧、ios上是为false的、所以就明白了为啥会出现这情况了、可能是ionic在安卓上没监控到原生滚动事件吧、纯属猜测、有知道的大大们希望可以说一下、好啦问题解决了。写了一大堆废话、哈哈哈、

本文属于博主原创/转载请注明出处、谢谢

 

posted @ 2016-10-31 20:32  进阶的小范  阅读(4283)  评论(0编辑  收藏  举报