00:00
大家好,我是学习园地的特约讲师高若峰,上节课咱们做了订单列表,但是呢,还没有完全做完,为什么呢?因为在订单列表里边,我们这样呢,下拉加载更多,现在是可以看上去是一页页加载,但是呢,它是无限循环的,嗯,拖动多长时间都是可以的,点击其他页面也都是可以的,你看也都是可以的,无限的去加载,无限的去加载,对不对,这样肯定不是咱们想要的效果,咱没有这么多数据,那怎么办呢?咱们就得处理这个事情,把这个处理完整了对吧,那比如说到其他页面的时候,咱们点切换,这个切换是可以到其他页面对吧?到其他页面的时候,那我们是不是通过这个调一下初始化呀,那如果其他页面里边,现在我们如果没把这个页面。当前第几页的给改变掉,也就是在这个上面。我们现在还少一个变量去设置什么呢?把页面初始化为一,当前为第一页的Sta.PA等于一,不然的话到其他页面,假如加载第十页,第20页,它都是什么?从我们这个页面,这个页面加载到第五页了,切换一下到第二页面还是从第五页开始加载,这样的话比较麻烦,对不对?所以呢,咱们把这个给初始化,就每次调用的初始化的时候都从第一页开始。
01:11
这样的话就不会有这个问题了,然后呢,我们看一下它不断的加载数据,说明这个在不断的请求,对不对,说明在不断请求加两个一页,再去请求,我们在这块打印一下这个页数。LG打印一下什么呢?S sta里边的page当前页是什么?我们加上一个一行井号吧,这样你能看到能看的出来,你看我们现在在刷新的时候。在刷新的时候,你看默认答案第一页对不对,我现在往上刷新刷新。再刷新。他你看到第二页的时候,它还是打印第一页,你看页数还是一一页这个数据对不对,所刷新用了三次还是一页这样数据,对吧,所以这肯定是不对的,所以呢,我们要想让它不刷新了,有多少数据之后将它停止,我们不有一个呃方法这个。
02:01
在这里面你看如果我们想要它停止,它里边有一个这个,你看若数据已经全部加载完毕,调用它即可,它就会停止,那比如说我们就想要一页数据加载完就停止,那我们现在你看加载完就停止的话,那我们直接调用ST数据加载完里边调用这个。啊。呃,不是这个结束。要。呃,Fi的这个,比如说把它改成真。这样的话,我们调用完加载完数据之后,我们把它变成真了,那它就永远的不会怎么的不用去再去执行了。多少号?那。现在下载下分之一加载数据。有。那我拖不动了。对吧,没有了,拖不动了,到这就停了,第一页数据加载完就能告诉他这个变量一设置就告诉他什么,你别加载了,数据已经加完了,加载一页,加载完就让他停止,我们加这个就不能让它再继续滚动,就意思我们结束滚动就可以了,这样的一个过程啊。
03:08
所以这个变量是非常有必要的,那我们什么时候接这个你上来这个上来的。你看这一是还还在变化,上拉下载更多还在变化对不对,那上拉下载更多,我们也得处理对吧,上来下载更多,处理的时候呢,我们啊先一个一个处理完吧,处理完吧,把这个处理完啊答这个那什么时候让他部队加载了,那我们是不是就让他把这个数据。给我们呃,判断它当前页面,当前页面如果已经等于了,或者是大于就是大于等于吧,总页数,我们是不是得把总页数拿出来呀,那我们这现在还没加呢,总页数在我们列表里边,只要是一个数据列表的地方,肯定都是接口里边都给我们提供了分页信息,对吧?我们可以处理下一页,不管是你是移动端条作还是PC的操作,都是一样的道理,那这里边有什么数据总数就一共数据的条数是多少,那咱们要的是页数的条数,那这个是总页数对吧?就是每页显示多少条,咱们默认每页应该十条,然后呢,当前数据对吧,当前页码都有,咱们要的是这个总。
04:09
这个不好记,把这个拿回来,然后这个是总页数加S,记住这几个词啊。那这里边我们就可以先把总页数拿出来,放到我们这里边,我们现在总页数是不是零嘛,对吧,初始化下的状态ST里边的总页数,让它等于我们通过接口里边。Me,这个你粘过来,Meta里边这个数据里边是不是分页信息啊,里边是不是就有一个总页数,To TL斜杠pgs这个总页数,那我们可以打印一下这个总页数,嗯,STT点这个点LOG打印一下,然后这块我们也连接一个嗯,S吧,这样的话我们就知道。总页数是多少?也就是我们全部订单里边才能有分页,其他里边没有啊,因为咱们数据比较少,你看白二两页一共就两页的数据开始对吧,但是你想用测试的话,用更多测试的话,要么改接口里边每页显示少几个对吧,要么就是改成更多的一些,当然我们往下可拉拉那动了,这个设置为真了,对不对,就它结束了,所以我们一共才有两页的数据对吧?但两页的数据我们也让它是页数完事之后不让他再去怎么着再去加载数据了,所以我们得需要在这判断一下,也就是如果。
05:22
State state配这个页数如果大于等于state里边就当前页大于等于总页数的时候,对吧。当然等于它的条件程序呢,我们把它去掉,就不让它再滑动加载了。上去不让他去,呃,滑动再来了。总结出这个就是二这个咱不用打这个。当然现在你这么设置的话,因为我们现在没让这个页数加一,没有设置这个页数加一,所以呢,现在这个数据还会怎么着,每次请求的时候还是这个页,这个条件永远处罚不了,对吧?那它是一,总业务是二一不会大于等于二,它甲的条件,这还执行不了,对不对,所以现在你还可以无限的等着,无限的去拉。
06:05
无限的去加载对吧,你看无限的去加载,现在还是可以的,对吧,那我们怎么能让它可以,就是我们加载完一些数据,是不是这块有加载吗?对不对,那我们可以干嘛呀,我们就可以判断一下。嗯,判断什么呢?当我们去允许我们加载的时候,你看啊,如果如果这块直接我们加载sta点,你看在这块只要加载的时候,我们就像当前的页面。怎么着,当前页面等于T点配加一,这样的话页是可以怎么一直加,也是我们调用一次当前页数就加一,调一次就加一对不对。但是默认我们就有一个第一页面,所以得判断什么,判断一下是否现在是在加载中。如果现在是在加载中,并且呢,我们页数对吧,我们得先判断什么,先判断我们sta这个页数,我们是不是小于什么t.tol PG,那是否小于这个,如果我们小于这个页数的时候。
07:11
哎呀,如果我们小于这个总页数的时候,我们才能加一这么去做。不然的话,我们才会一直加上去,对不对,超过这页面,但是我们页页面是没有数据的,所以呢,我们现在就可以刷新一下。你看当前11对不对,我们现在拉动往上拉动。往上拉动。啊,你看变成了二对吧,那我们再拉动就拉动不了了,就两页数据加载完了,相当于加载完毕了,对吧。直接拉可以,那我们往上拉动。你看。你看上面还可以加载,但是也是这个第二页的数据,你看对吧,所以我们现在想上不能加载的话,那我们正好再判断一个什么时候不用它再再加一了,嗯,可以通过sta里边的判断,这个上拉加载更多的这个对吧,如果它是甲对吧,是甲的情况就是允许我们下拉加载更多的时候,对吧。
08:08
指甲,然后我们取一个反,这个时候我们再加一面,那如果我们不行的话,就把这个变成什么,变成甲就可以了。嗯。这块我们得是一个并且的条件。来刷新一下。现在线下拉动。拉动的第二页对吧,然后我们向上拉动。你看还是第二页,但是就回到这个第一页了,对不对,又回到这个第一页这个数据了,他不会有了,对不对,还是这个一页的数据,对吧。不会像出现在其他的页面,当然还是这个一个页面,现在这个其实没问题的加载中,但是你如果停掉的话,我们在这里边上拉加载是第一页面,你可以在判断,如果在等一的时候要上拉,这个也停止掉就行了啊,当然这个没什么其他的,因为数据是不会变化的,那我们再看一下其他页面,其他页面,比如说待付款的页面。
09:05
这样的数据,这里边我们就这些数据对吧,就不会有更多的了,那已支付的。已支付的,这些是已支付过的。对吧,你发货的咱们有没有更多,你看这里边显示没有更多对吧,交易完成了,咱们也没有更多都可以了,没有更多就拉动不了,对吧,他会拉动不了,就会自动把这几个属性给关掉,那我们就拉不了,页面就完成了,这就是我们列表页面,当然如果大家想嗯熟悉应用的话,那你需要把这些再好好练练,自己完完全全写一遍就行了。那你可以把咱们首页和列表页面的数据用这个去完成就行了,好,谢谢大家,这节课我们就讲到这里。
我来说两句