00:00
同学们,接下来我们继续哦,接下来我们就要讲一个,讲一个判断完整显示轮播图的分析,以及判断轮播图是完显示,为什么有这为什么会讲这个呢?给你们看一下,有个bug大家看啊,你看啊。我是已经加了更多很多了吧,加我往下拉拉一点点。差一点点。诶,没复现这个bug呀,好,我我这样吧,把这个start up放一下大家看啊,有网的话,它就应该有这个bug了,你让我往上拉一点点。哎。你看水泥都回到上面去了吧,大家再看一下啊,你看啊,我往下拉,我已经划了好多好多好是好多页面了吧,大家看到了哈,你看我现在划几个。回放你们知道为什么吗?大家想想当我往下拉的时候,他做了一个什么?下拉刷新,下拉刷新是它是把所有的四倍重新又重新去刷新的,那这个时候它会变为初始状态吧?
01:12
那这样的话势必就会导导致一个bug,就是我划到下面很多空是吧,但是我我想很开心的再看一下我划过的数据,我一放一放,哎没了我的天去找半天找不到,那用户是骂人呢,是不是,你这啥破软件是不是不好吧,那我们就解决一个bug。怎么一个bug呢,意思就是说。意思就是说我们如果是往上拉的时候。对吧,往上往往上拉的时候,那么也就是说我们是应该不要他做下拉刷新的吧,对不对。没没问题吧,那也就是说我们要接下来要做的问题就是这个事情,就是解决我们这个加载更多后,然后嘞上拉这个啊,加载更多后啊,往上滑动,然后呢,直接回到我顶部的什么把要做这样的一个事情,你看再来回顾一下啊,你看我现在往下滑挺开心的是吧,往下滑没没问题是吧,然后我稍微滑动一点点一放。
02:37
回去了,回去了,因为大家可以看一下数据,这哥们呢,他确实很。他确实呢,他做了一个事,一个事情就是啊,你看我还了很多很了很多很多,好大家看好哦,把这数据清掉,好,我把稍微往下拉。做什么事情呢?不是加的更多是每次就打,其实这个时候是什么,他其实做了一个什么,这个方法看到没有,这个方法是什么,是是刷新了明白了吗?啊是刷新了明白吗?是他把它当成刷新去了,那怎么办?是不是这个,这个时候我就应该要判断一下,怎么判断呢?其实是这样子的,就是说当那那问题是我怎么区分呢?其实区分特简单,大家想想啊,只要这个顶部不显示,显然是什么,是这种状态吗?这种你怎么滑动你都不应该刷新吧,那也就说顶部轮播图没有显示,没有显示的时候,我们就不应,如果顶顶部轮播图它没有显示,我们就应该把它什么吧。
03:52
是不是,那也就是说回过头来是不是就是判断能不度数完全显示了,那完全显,如果没有完全显示我就不,那如果完全显示了,那这个时候那就就无所谓了,是不是是不是好,那么接下来我们要判断问题是怎么去判断一个轮播图,怎么去判断这一部分完全显示呢?
04:17
当前显示是这样的啊,首先安卓里面没有一个方法可以判断某一部分是否文件显示,但是我们可以用对比的方式,怎么对比呢?给他等下画个图大家看好啊,大家想想这个顶部这一部分,这顶部这一部分。这顶部这一部分是隶属于的一部分吗?好,那也就是说同学们在这个地方里面,这一区域是隶属于对不对,然后它距离顶部的距离是这个距离吧,OK,好,那么我们无论怎么滑动,这个隶属U距离上面的坐标有变化吗?没有,OK,好,那我们再来看一下,那么我们历史U坐标没有变化,但是我们顶部轮波图这部分有变化吗?它这顶部的坐标它是有变化的,大家看啊这一部分啊,我往上拉。
05:15
变了吗?是他已经到应该跑到这里去了,对不对。好,那么这也就是说它跑到这里面去了,这个坐标是有变化了,好,那回过头来怎么判断判断顶部轮播图是否完全显示呢?好,现在我们呢,他知道这么一个规律了,就是历史运坐标没有变。我们的这个顶部轮布图有变,那也就是说顶部轮图这样的话是刚好和隶属又相等的。那么就是当我们顶部轮波图的坐标大于和等于隶属于的时候,像这种肯定是温定显示吧,刚好等于是也是温定显示啊,那也就是说顶部轮波图就这部分它刚好是大于和等于隶属U的时候。
06:09
这在Y轴上的坐标的时候,那么它就问你是注意啊,是不是在Y轴上的一个变化,就说这个坐标以及我们这个隶属于。这是隶属U吧,它们如果是相等的话,它也是这样子是不是,但是我们当顶部轮波图这部分如果是滑到下面来,这时候它的坐标就变什么变大了,是不是是不对对吧,那这样的话,如果他跑到下面的是肯定是完全显示的没有遮挡了吧。对不对,你看我们用对比的方式就知道了。你看,这就是人,人类的智慧。你想?几回东西?我们是什么呀?没有看到的,也没有现成的方法,但是我们有推出来,像牛顿一样是吧?在苹果树下,他在等他的女朋友是吧?然后突然苹果砸他的脑袋,他就奇怪说这苹果为什么往下砸我脑袋呢?不,不往天上砸呢?后来他拼命的研究,发现了万有引力定理,是不是这个道理啊?
07:21
那也就是说我们通过对比的方式推算出,推算出哦,当它全部显示的时候,其实就是大于或等于,我们这个力U在Y轴坐标是这样的,同学们好,那相反,也就是当我们力的U在屏幕上的Y轴坐标小于顶部啊,小于或什么等于顶部轮波图在哪里啊,在Y轴。
08:00
的坐标的时候,然后我们的顶部什么轮波图完全什么显示,好,那么顶部图完全显示的话,大家想想顶部轮播图完全显示的话,我们还需要大家想想,如果都完全显示了,是相当于这样效果了,那我们还要加加载更多吗?不用了,对不对,那也就是只有这样的时候,没有完全显示时,我们才会加载更多吧,对不对?好,那也就是说我们就要去做这样的一个事情了。好,那也就是说我现在想要得到这一部分的一个在屏幕上的坐标吧,这一部分的坐标吧,那这一部分是应该传到我们。下拉刷新的这个控件里面,我们才可以去比较吧。对不对,大家还记得我们之前给大家说过吗?要把这一块变成一个什么整体呀,还有印象吗?拼这个整体,然后现在是没有成整体啊,那也就是我要单独把这部分传到力传我们自定义下拉方的隶数越中,然后再帮它拼起来,然后并且在这个地方可以得到它的坐标吧。
09:24
好看好啊,复杂的地方来了,有些同学可能转不过弯来。提这个地方好多点就在这里了,首先是为了解个bug对吧,好,第一还要还要涉及到怎么判断是吧,这是一个知识点,电还要把它顶部轮播图部分传入,传入哪里啊,传入我们的绿绿。率许例属于中,便于比较什么坐标吧,是说这两个事情呢?好,那么大家看好。
10:11
我们来到这个地方里面。这个类里面好找到,找到了哪个呢?找到它的in you方法中。好,找到you。这里,那么我们在这个地方是之前是以头的方式,以头的方式把这部分给添加起来啊,现在我要把它们变成一个整体,变成一个整体。这个时候变成个整体的话,我就需要不这么以头的方式了,为啥?因为它里面又有了一个什么图,所以两个头了。
11:05
看到没有这两个头了,你看啊,有两个头了,那同学们有两个头就就不不就说我希望不想要两个头,有两个头你还不成怪物了吗?啊,当然看到的是挺还行是吧,但是不行,就说我们不想要两个头啊,当然这就说我们要把它传进去,合为一个一个整体。明白吧,好,怎么做呢,就是在这里。要去把这个什么。给什么注释掉,然后改为a DD had,不是叫a DD top顶部60U,那么也是什么,把它填进去没问题吧?好,那如果是这样的话,你觉得顶部的轮播图还有吗?先给大家看一瞧一瞧,一会的话,我就把这个注释掉的话,就是不相当于这部分是以头的方式添加吧,但是你们觉得下拉刷新还有吗?
12:08
下声是这是这样有啊大家看啊,你看这这样有下到声音的,这没问题吧,那么也就是说这个是以头的方式添加,那顶部轮布头刚才是也是以头的方式添加,那我们有必要添加两个头吗?因为添加两个头啊,到时候你得减二懂意思吧,那我们不想减二怎么办,就改成这样,改成这样的话是让这个哥们形成一个什么整整体呀,对不对?好这个方法没有是吧?把那个什么串出来好,然后的话呢,我们去把它添加好,把它给创建出来,好这个是一个顶部,注意它代表的是顶部轮波图部分,好大家再看一下这顶部轮部图,刚才说了这个下拉图和顶部轮部图这个地方加入了吗?没有加入,马上加入。
13:17
怎么加是ADD开的,那还是AD了,现在注意变了哦,这就变成是ADD什么有把这个们呢添加就可以了,知道吧,好,那在这个过程中的话,这哥们是有可能为空啊,我们最好啊判断一下啊,不等于空对吧,然后来采取做这样的一个事情,这么理解吧,好就把它添加,如果这样添加过后,你们讲应该和我们刚才的应该是变成什么了,一体了吧,又是一体了吧,你看好哦,这个的话又变为一体了。
14:03
不错。哎,稍等一下啊,好是之前的一个好,这是我们运行起来的好,是又变成一个整体了,你看这样下拉升可以吧,没问题吧,你看这样下刷新照样有下拉刷新。没问题吧,好这样可以OK,那也就是说这个就是添加顶部轮波图对吧,实际上形成一个整体啊好这个的话,那就是都有了,好那么有了过后呢,还有一个问题,就是把这一个传进来,便于比较坐标,也就是说比较坐标就是当历史又在屏幕的坐标小于或等于顶部多不在百度做一个时,顶部的问点演示,好那就是这样子,大家看一下。刚才我们我们我现在思维要跳跃了啊,大家想想我们刚才要解决的bug是。
15:03
往加载更多的时候,突然又往上往上拉,是不是就有bug了,大家还有印象没有这样子,那我们往往上。好,一一飞是回来了,再解决这个bug,好,这个时候当我们在滑动的时候,其实触摸它的沐浴事件吧,好,所以我们要来到红塔这里就要判断。好在这里面在做这件事情,就是判断顶部轮波图是否完全显示,那只有完全显示,只有完全显示才会才会有什么相当刷新吧,不是这个意思啊,好,那只有文件显示才刷新,那我就这样子。玻类型第类好是我们的拓60好,是否显示我们的这个顶部能布图好,那么这个方法的话呢,它就做一个判断,是否顶,是否显示我们的顶部,那么图。
16:22
这个方法就是判断它是否完全显示顶部什么轮播图,那完全显示顶部轮图,这就是他的什么。就是我们的约定吧,这样情况下才是文件显示吧,好,然后再回去,如果它完全显示就返回to,不完全时返回复是吧?好,那我们就看了,如果没有完全显示,那没有完全显示的时候是相当于这样的效果吧,那是不是相当于它要做一个加载更多啊,下载更多的话,我们下面这个地还需要做吗?那也就是说这种情况下的话,它其实就是加载什么更多的情形吧,那我们就干什么注意啊,加载更多是下面就还不需要做这个事情了吧,明白吧,如果你走这个地方的话,他就更改这些状态,更改这些状态过后呢,好,他就。
17:38
它就改,它就变为是我们的什么这些状态,然后就然后当你一放的时候,Up的时候,它就会回掉这个接口,那如果你一旦等于啊手上刷新这个状态,那这个时候势必它就会重新调接口,重新调回接口,又恢复到初始状态了,好所以大家一定要注意。
18:02
在这个地方里面啊,一定要做这样的一个。啊,当它啊没有完全显示的时候,这段时间完全显示的话,就返回Q了,返回Q取反这个地方还有机会执行吗。好,没有就非执性就判断题目录完全显示。如果没有完全显示好,没有完全显示,那这个时候它其实就是往上拉了是不是好,那么这个时候就不什么bla好,那接下来怎么判断呢?好当例数又在晚上坐标小于或等于这个点部中部都在晚上坐标时候,你们的完全设好,那这个时候我们先要去第一得到历史的U,再屏幕上的图标,还有电得到我们的顶部轮波图在屏幕上的样,对吧?好那这个怎么做呢?好注意累死当前就是这个空间的好,那我可以,我内存我可以省略,直接可以到当是一个什么screen得到o screen看到没有。
19:19
然后在这个地方里面,它存的是一个什么。数组吧,好,然后我把它给创加出来,然后呢,啊好看一下这个方法是什么意思呢?就是说它将会返回XY轴在屏幕上坐标吧,第一第零个是X,第第一个是Y吧。知道吧,好,那么这个时候呢,我们就要去得到这么一个值,就是这样子啊啊这个啊,我们的list u,然后空斯库率,斯库率在Y轴上的坐标,那么它等于的是第几个第几个第一个对吧?好,那我把它给串联出来,N等于一个负一,这个是我们这个啊逆史乘六在Y轴上的坐标,在Y轴坐标它有变化吗?同学们。
20:32
你属于有变化吗?没有变化,那没有变化的话,我们就可以这样,它默认,它默认的话嘞,它其实第一次进来是默认要等于一个负一,就是我们在这方面默认那等于一个负一,那如果等于负一,我们是采取做这样的事情呢,因为他他经常变化吗。不变,是不是在初始化一次啊,没必要每幅都初始化吧,OK,接下来得到顶部轮布图的坐标,那么就是啊拓60,然后get local window10是也可以同样用这个好,然后有了个后呢,这个时候in特类型,我看一下是法回的适应类适应类型对吧?然后得到的是顶部轮播图啊,这个O是库在Y上坐标,那么它取的是第几个这个注意这个是实时的变化了吧。
21:37
对吧,所以我们呢。就这样子,然后接下来就得出就是我们你属于的坐标小于或等于这个顶部罗布的坐标的时候,它就是完全显示就就完显示完全是返回一个多少去啊,否则就返回一个什么昵称返回个什么好,那么这个返回to就为to或或那是不是直接把这哥们返回就就解决了,是可以啊好,那这个时候呢,就就不需要了吧。
22:15
啊,但是有时候这个哥们,万一有一些哥们以后以后我们把这个改为第三库。第三方库的话,那是有可能别人懒得去他,他就他就没有这一块。如果这一块他没有加载进来,你就用的话,他不就崩了吗?那是不是我们还做一个判空啊。好,那也就是说在这个地方里面的话呢,在这个地方里面的话呢,好来在这里。刚才的触摸时间这里,然后你就要你要去做一个事情,就是对这根本进行什么。这个我们进行碰空吧,好,所以的话,我们在这边还要加上一个喷空,要考虑很周全,不等于空,然后才会把这一部分剪写到这那二呢,二默认的话流return一个two two的话是完全显示啊,我们把肯定默认是要完全显示吧,对不对。
23:16
好,那这样子的话呢,就可以了,好大家好啊,这个bug是不是解了没有。你看现在的问题是加更多之后啊,我们往上拉一点回到顶部了吧,这很恶心吧,好。这是这不是咱们软件啊,嗯,咱们软件咱们一起来。好,大家家好,这时候呢,我们点击一下好,那么往下拉下更多。怎么填吧,好,那我们再往上拉看行不行啊,好大看哦。一放一放,诶诶诶,看到有这个bug解的挺好了吧,对不对,好,所以的话呢,终于把它彻底给秒杀了对不对,好就可以了,你看照样涛声依旧是吧,照样可以刷新,好那同学们这一块其实就是我们所做的事情啊,这个判断的不图数完全显示啊啊其实本质上是解决了一个什么解决加载更多后往上啊往上滑动直接回到顶部的bug,对不对,是这个bug吧,好把这个视频呢保存。
我来说两句