00:00
同学们,接下来我们就讲我们的下一个是于讲完学天比有点慢是吧,是因为我们讲的多啊,好,同学们,我们接下来就讲轮播图循环播放,好我们要用什么呢?用handle的。用hand,你去做hand的了,他做一个时间,就是他可以隔一段时间就发一个消息吧,隔时间就发一个消息啊,他可以做这样,那这样说的话呢,大家可以看一下我们之前做好的这个啊,做好的在这里。好,你看啊,他隔一段时间他就去循环是吧,好,那这样的话是我们想要这样的效果呀,对吧,因为我们人呢,对这个动的比较感兴趣,就能够能够看得见,所以我们希望呢,动起来让大家去看这样的新闻,是不是因为我们这个相当于放在上面的应该是头条吧。
01:01
对不对,这是头条新闻吧,而且基本上如果是好的件,基本上可能几个小时更新一下,每一小时更新一下,每天有新闻,对不对,比如说前不久是吧,王宝强离婚那个事件是吧,过个头条,那就基本上显在这里吧,对不对,你不可能放在屁股后面,谁看了对不对,都看不到是吧,那你那你软件没有他别人感兴趣的信息,人家不看。啊,所以的话,我们在这个地方里面的话啊,交去做这样的一个效果,那这个时候呢,用到的是hand的hand的消息机制讲过吗?讲过对吧?好,那么在我们这个地方里面的话呢,好,我们给大家可以看看,好这里面第五天有一张图给大家略讲一下啊好handle了的话,注意平时我们所看到的所用的其实基本就有两个类,一个handle了和是message,那么对于消息队列和lo loop我们是看不见的吧,它是际上类似确实存在的,那么它是怎么一个机制呢?就说我们去在某一个类中去定一个handle的了,这个时候创建一个handle的时候,一般会实现hand message吧,这时候我们一发消息,他其实发到的是哪里啊,消息队列,那消息队列发的时候呢,它其实按照先后顺序去排序。
02:22
啊,就按照这个消息它执行的先后顺序,如果这个消息立刻执行,它会排在后面啊,排在前面,如果如果稍微把后一点都排在后面啊,注意我们发消息的时候,不只是message,还可以发任务,就是说呢,一个可以执行的一个回调啊,也可以发出去。那么这个时候呢,我们这个时候这里面就有一个漏的话,不断去取出来,取出来如果是任务就直接执行,如果是消息就发到hand message,并且hand message的时候是在子线上还是主线程上。
03:01
就在主线程,这样的话就从我们的什么主线能切换到主线程了,明白了吗?但发消息的一般是在哪里发呀?好,我们梳理一下这个过程,首先我们要录一个message,然后再定义一个handle了,一发一般是在直线的发,发过后第四步这里面呢,收到消息,然后按照先后顺序去排序,然后排序过后在这个方里面他不断去取,取出消息过后如果是消息,如果是message就发,直接发给message,这个方法如果是啊可执行的任务就直接执行。知道吧,就这么一个过程,然后接下来呢,我们去做这个事情,也会包含我们的任务啊,注意啊,消息队列里面不止可以放消息,还可以放我们的roundable啊,Able就是我们的一个啊,Roundable不是现成的,是一个接口的一个时间内嘛,对吧啊啊。
04:00
乱了,放在线程里面,它是才可以执行的线程,线程嘛,乱它本身就是一个接口嘛,是不是啊,好,只是说用它是也可以做一个现成的对吧?好,那同学们在我们这个地方里面呢,接下来我们要去做这件事情的,大家想想应该来哪里做呀。这个页面是哪个页面呢?是table page,好,来到这里。好,然后来到地面过后呢,大家看一看,当我们把数据全部加载好了,这个时候应该是在什么阶段呢?是解是这个阶段呢。和落是在下面最下面这个阶段呢,注意这个方法一进来它会执行几次,大家想想,注意一是其缓一次缓存的这行次,还有连发成功请求次啊两次大家注意啊,然后在我们这个地方里面,我就是就是要发消息,然后呢,每隔啊四秒,然后切换一次,一次什么云配点什么页面没问题吧,好那这个时候呢,我们要去切换,你看大家看看,基本是三四秒啊,你自己定义啊,就是你想要快一点就可以快一点,对吧?好,那接下来我们就要去定义一个。
05:44
Handle my internal内部的一个handle好,或者说我们直接叫这个,然后它继承什么呀,含等的好,然后重显我们的方法写,所以在这个本质上就是一个什么好,然后我们这一方里面。
06:12
嗯,定义它因一下,好,我们呢,可以把它写的是什么类的成变量。好,然后在这个里面,它因为这个方法它只有两次对吧,所以我最好这样子,如果它等于,那我们呢,才去做这样的一个事情,对吧,然后接下来因为只有两次,那我们要要先把上次的消息给什么移除,好跟大家讲一下啊,这个方法是啊,我们消息队列消息队列所有的消息和回调给什么移处注意,那如果我们我们的handle的有多个消息。
07:20
比如说词续起什么什么词续起什么,好多个消息,那我就移除过后,那些东西还起作用吗?不起作用了,注意啊,这个方法有这么一个大魔力,大家可以看一下注释,他说啊,如果我们存这个参数talking是那。那么所有的回调和消息将为什么会移除是吧?那移移除过后是就没有任何污染了,注意我所讲的污染就是没有其他消息了,全部移除,然后我再重新什么重新发,发的话我就发一个post,你看post delete,这里面是一个roundable啊,注意round是现成吗?不是线程的啊,Slide才是线程啊,你不要觉得就是线程就错了,就是说是用可以做线程,就可以结合slide来用,可以当做一个线程对不对?好那么在我们地方里面呢,我们就用它,注意它,因为延迟的时间吧,好延迟多长时间呢,四秒。
08:19
好,然后在这个地方里面,他要传的是一个乱able对吧?好OK,我自己定一个乱able,好实现我们这个接接口,注意在这个地方里面的话呢,我们要把它给实现好,大家可以看一下这个代码,这是什么接口,它是线程吗?不是,就是一个接口而已,仅此而已,对不对?好,那么它起到线程的作用,是因为它跟线在一起。然后你重写这个方法,就是在他这个方法的话呢,就会在直线上执行,是不是是这样的啊。
09:01
好,那么有了过后我们呢,就要去把这个给溜出来。好这个的意思是什么呢?意思就是说四秒钟后执行这个类里面的什么让方法啊,让方法好,那么执行在主线呢,还是主线程呢。啊,注意这个六的时候在主线程,它指它里面的乱方法就执行在哪里啊,就执行在主线程啊是这样子的啊,所以这个C呢,有的同学可定看到让A这根本就应该是主线程错啊,如果这个的时候是在主线,那么呢就是在主线,如果在的时候在线中。啊,那就这里面执行的话就是直线程好,那同学们我们的地方里面的话呢,我们接下来的这里六的话肯定是主线成诺是吧,那这个时候我就要去做一个什么样的事情呢?发消息好这地方里面去啊发一个消息,这个是我不发任务了,我就发一个延迟的空的消息,空的消息的话,我随便发发都可以是吧?好发什么呢?就是嗯。
10:30
就发一个发个延迟多久,让我看延迟个四秒都可以了吧,好,那也就是说这个浪烛型就是干一个事情发消息,然后接下来这里面我们要做一个事情,就切换什么,切换VP减的下一个什么页面,对不对,好那么在这个地方里面的话呢,我们就是VP减。
11:01
这个吧。要想切入到下个页面,大家想想是不是也是内部去切换呢,是不是啊,内部切换好,它这边有个方法叫什么看好切换然item好,然后嘞,怎么去切换呢。好,它就等于这个get current加一,那加一过后,那么加到加一切的话,切到末尾它就停止了,它一直往下加是就没有了,怎么办呢?取模是曲模吧,不是曲吧,是曲模吧,好,那取根据什么取呢?根据60。等一个什么错了,不是68,不是68 top60 top60是谁呀?是这个有多少?真有四张图片是为长度为四啊的一个size,好,那么它取出的值,大家想想,你这个地方里面加个一,就说current它它零到。
12:12
零到假如说这个地方有四,它是零到三对吧,加个一,然后在这个在这个区内去取值啊,它取出来值也是零到三吧。对不对,也是零到三,这时候呢,就来回的这么什么实行这个切换,好,那么这个有了过后呢,这地方你们注意了,这里我们四秒钟后执行它,执行它过后执行这就结束了,那怎么办啊,是在这里面再去发一次啊好这个时候会导致一个问题就是什么呀。14秒过后,这里面又四秒是越来越越来越慢了,所以我们应该这个地方要改一下,改改为什么直接发消息。可以了吧。好,那有同学吸引同学,发现老师啊,你好像好啰嗦哟,多了一个。
13:02
这个其实这个是个省略啊,只是我想告诉大家同学们,我们呢,可以发这个发消息的时候可以发什么呀,可以发任务知道吧,发一个明白了吗?这个意思想告诉这个的,告诉这个知识给大家啊,告诉大家然后结合起来用对不对,那你完全就用hand的延迟发酵也可以做这的效果呀,这个可可以省略啊,对不对,但是这个本子就发一下是不是,那这里面又录了一个对吧,这样做,但只是说呢,告诉大家我们可以什么发这么一个东西。好,那么有了过后,我们呢,就可以去运行起来,给大家看一看我们的这个效果了。啊,效果了好,但是大家看一下我们的这个模拟器是挂掉了,好,那么5.0挂掉了,我们去把它再开启一下。好,同学们,我们去把它运行起来看好。
14:02
一起来。稍等一下,应该很快了。好,然后呢,大家看好了点进去1234走你可了吧,1234走你好,最后到最后一个看好走你好,接下来他应该被切又切换了。走,你是不是对不对,是吧,好,继续走,听好了吧,好,假如说我想看这张图片,我想按着不动。这哥们是不是感觉很对,我很暴力呀,你看我按住他,我其实就想你别动呗,是不是,你看我按住它,好,我想拖动它,结果它还在走,是不大好啊,我们就应该它一按下的时候就移出消息,当一二的时候就发消息吧,是不是啊,好,要做这样的一个事情,怎么怎么做啊,这张图片是我们六出来吧,好,我们来做一做啦,来到这里。
15:24
这里这是顶部的是吧?好,然后我们这张我们出来了吧,我们注意一个什么触摸事件,触摸事件就会有down和up吧,好,那这时候呢,我们就会有set,我们的这个on touch的事件是直接写个内部类也可以啊,同学们这也可以写可以,这也可以,然后我们在这个地方里面,这个触摸事件我们就做处理了,应该返回多少注意啊,那假如有一天你还想对这个图片进行点击事件,这个应该返回多少?
16:02
这个应该返回,但是我们现在只有触摸事件,你一定要返回,To反不起作用。但是如果你又想又触摸事件,又想点击事件,这个必必须得返回什么for,现在我们只有点只有触摸事件,那就就返回to啊,这是有,那好,那接下来even get们好,然后呢,Case好,然后这个地方里面有放不要播放了这个bla。有这个有up好,木鱼的时候需要吗?是吧,木鱼的时候不需要好,那么在我们这个地方里面就是这个是按下这个是离开对吧,那我们可以打个日志。好按一下好,然后呢离开对吧?好,那当按下的时候就把消息给移除吧,好,那移除的话按到我们这个地方里面怎么做啊,是相当于把这个消息移除,再重新就这个就是全部移除啊好。
17:30
好,到刚才那地方来。好,按下的话我们就移除是不是,那离开的时候就应该什么发消息,注意我们建议是这样子的啊,就建议的话,发消息之前先最好是把之前的移除,这样的话才是一个最新的,就这样没问题吧,好那么我们去运行起来给大家看好。
18:01
大家好。比起来。稍等一下好可以了是吧,好大看一下这个地方里面,你看啊,我现在要去点喽。梦的时候,他是在走动的吧?好,那我一按。好,我们数一下1234不动了,一放好,这个时候呢,他就离开了,1234走泥可以了吧,好,但是它有一个问题,你看好啊,我滑动一下,它按下了。但有up吗?进来没我放。大家有按一下有有有up吗?离开还有吗?好,你再数1234,走,你还走吗?不走了。这不有问题了吧,是不是好?
19:03
那么这个时候咋整呢?对吧,咋整呢?好这样子啊,同学们,其实在滑动的过程中有个方法,就是在我滑动的过程中啊,在我一按下肯就是在滑的过一按下肯定肯定会执行,这个时候呢,他就把这个消息给移出了吧,但是我滑动的过程中发现了,滑动过后这个up是没有没有机会执行的,这个时候呢,它其实会它会掉这么一个,掉这么一个回调,这回调嘞叫做cancel。啊,这个叫什么取消,好我们给大家看一下,取消就是说事件丢失了过后啊,他为什么要这个取消,那取消我们就重新发一遍,是不是可以了,好这个时候呢,你们觉得解决了吗。大家好啊。
20:01
大家看好,那么我们在这个地方刚才过后是就是刚才没有机会执行,会导致它就停止了吧,那是不是就没有意义了,好,但是其现在又会带来新的问题,大家看好。我们现在首先我们这样试。我就按一下1234是确实很听话呀,按住不动了,被我们按住了是吧,然后我们一取消执行了吧,好,我不动。好,结果他又运作起来了,为什么,因为取消又行什么继续了,但是了,对不对,好,那现在的话就有问题了,怎么办啊。那也就是说这个事件其实就是在滑动中丢失后,他被执行,但执行过后,我们一滑动后一放的时候就划的时候立刻帐篷一滑的时候,它就立刻就执行了,四秒钟就开始运作了吧,那运作带来的问题就是。
21:05
带来的问题就是又继续走了,又感这种感觉更更不好,你看啊,我明明都按了一点点,我明明都按到感觉挺爽的是吧,结果的话嘞,这哥们你看我滑一点点1234走你是吧,是感觉就是我我扭都扭住啊,结果还跑,所以这个用户感觉更不爽啊,但是如果你很正规的玩啊,这肯定没问题,你看比如说啊怎么玩呢,我按住。1234没问题吧,好来一放1234走你是不是很正常啊,这种是正常的吧,正常的,但是会导致这个问题怎么办呢?好,有办法,大家还记得我们用配解切换的几个状态的切换吗?注意这个时候就用到那三个状态啦,那三个状态闪亮登场了,也就是说这样的几个状态无法满足我们的需求了,这时候我们呢,就要去再去做了,大家看好这个方法是不是就是我们建立页面的变化呀,有印象吗?好,我们可以看一下他在哪里做这里设的。
22:14
好,这个是建立预配的一个变化呀,好点进去,好在这个地方里面有一个方法叫做就是on page状态的变化是吧,这一个是on page滚动的一个变化吧,这个是哪个页面滚动,这个是滑动百分比,这是滑动的像素,这是某个页面选中的时候回调吧,好,我们用它,它有几个状态呢?给它看好首先这个状态如果是等于于P节它你看它是有一个什么拖拽状态呀。就是不是拖拽的意思啊,好,这个是拖拽,什么叫拖拽呢?你就是就是拖拽呗,就是这样拖住它这种状态叫拖拽,明白了吗?拖住它啊,然后这个时候一拖这个滑拖,这个是拖拽,一放的时候是有个惯性的时候啊,它有个惯性,好然后呢,好那个else衣,然后好这个时候呢,他还有个状态就是什么关系。
23:29
啊,惯性滚就是在惯性的一个状态,惯性滚动,还有一个是不是有个静止啊嗯啊衣服好,然后呢,还有个静止状态好啊静止状态就是停止了,对吧?好把这个退出好,那么大家想想一拖的时候,我们是要把这个消息给移除啊。是不是好,这个是一个静止状态,好,那这个时候呢,我们要选一个变量,呃,选一个什么样的变量呢?这样吧,选在这,先选在这里,到时候我们再去做,然后呢,就是啊,玻璃型啊,这个DRRA是否在正在动中或能是负好那如果它一拖拽了,就把这个值多少为多少two,因为我一缓掉这个地方要发,要把消息移除在这两个地方是有可能要。
24:39
要发,要把这消息再发出去啊,这是移除消息,拖的时候我们要移除消息吧,拖拽的时候要什么移除消息,在下这个地方里面惯性的过程中停止了或者是静止了,是不是都有可能发消息啊好发消息,那么发消息的地方是有两个地方发是有可能发重啊,所以我就要这样子,如果为Q了过后。
25:05
这个地方里面它才有微执行,执行,如果一旦执行,他一旦消息发过,立刻把它改为多少或。同样这里面也一样。那么大家想想,如果他。是这个状态,他刚好拖拽了,他会two才有机会进来,没force了,那下这个地方还有机会执行吗?没有了,明白了吧,就防止发两次啊OK,那么我们这个地方里面呢,这个时候要移嘱消息,注意李墨云回纳这移除消息吧,好那么有了过后呢,在我们这个地方里面,好那你要这个时候就发消息了吧,注意发酵之前我仍然移除一次,就避免,这个是避免的,是最新的好那这时候怎么发呀,好,那post的是吧,MUSIC1MY,那这个时候呢,就是多少啊十秒钟好那么这个时候就搞定了,看好哦,好,所以这样的话,它就这两个方法发消息,不会同时执行了吧?好,那么同学们我们拭目以待,好,运行起来,看好哦。
26:28
好,然后我们去把这个问题就解决了。一起来。大家好,我现在按一下。1234好,那我按下过是确实确实那个触摸时间还是可以的呀,你看啊还是可以的,按一下看没有好,然后我一放。1234正常运作,这是正常运作了吧,好,那么主要是我滑动才有问题吧,按下滑动。
27:08
滑动的过程中取消这个执行呢。哎,我看一下啊,滑动好,稍等滑动1234。好,那这个时候那个那个我们还需要吗?同学们,是是那个触摸事件的这个不要了啊,其他地方这注意按一下,这个还需要哦,这个还需要我想想啊拖哎,对拖拽有,但是但是我不拖的时候啊,你考虑没有,刚才这个是不是只在拖拽的时候才响应了,但是我们一按下的时候,这个地方有响应吗?没有,所以还得要知道吧,有同学觉得哎哟可以不要了,错,只是这个可以什么这个可以不要啊,运起来啊,大家注意哦。是的,志,要不然大家可能没感觉好,然后呢,我们可以在这里面啊,就是拖拽。
28:15
多转,然后呢,这个时候啊,就是惯性。惯性惯性回弹的时候,这个呢,这个是什么呀?静止状态好,然后我们去问一下,注意啊,静止状态如果是这个方法执行的时候,静止状态不一定有机会进来了,因为加上这个字段呢,但如果没有加之前的肯定有啊。啊,大家注意,这个只是我们加这个字段,它可能会导致没有机会执行。好,然后大家看好我们呢,来到这里,好,那么我们来试一下,按一下,这是没问题的。
29:05
哎,我们要跑到这里来,好,这正常按下执行都没问题吧,好1234走你是吧,按下滑动。拖拽来有了吧,好不动1234没问题了吧,好,我一放惯性好1234整理是不是可以了吧?哇塞,就是这么玩的,明白吧,现在明白了吗?所以,但是刚才有同学说老师啊,那我们能否在这里把这个触步声音都干掉,能能能吗?不能,因为如果是我有,如果有人他就只按下不动,那你这个时候是是这个时候你没有衣橱啊,因为这个地方没有机会执行的是是没有基术啊,所以这个地方还得什么刘总啊好,那同学们,这就是我们这个轮播图播放呢,就搞定了对吧,OK啊。
我来说两句