00:00
所以人的话呢,你要是有一种那个发明,一种失迹是吧,然后呢,不想学习的时候来一针,然后大脑就特别兴奋也挺好是吧,嗯,其实你正常来讲的话,你说玩游戏也好,看电视也好,跟你看小说或者说学习,其实都在费大脑嘛,这样那个高考或者是考研完以后,那些人就是呃,太累了嘛,学习上,然后呢,就开始突然熬几个夜,然后呢,玩游戏啊,或者是看小说了,那其实呢,就后来就甚至就有点崩溃了,就是因为其实你都在累啊,不是说呢,你看小说或玩游戏就是特别放松了,你要放松睡觉去。那个玩游戏其实也挺累的。之前的话呢,那个是有一个,就我刚来北京的时候,北邮的那个同学就在咱那儿住了几天,他在外边住,然后跟他一块住,那个旁边那个哥们是北大光华的。大家知道那光华应该还是本科生啊,比较强,对,基本上都是各个这个市啊或什么的这些状元,那哥们儿呢,就是不好好学习,然后也是挂了一些科了啊,当然很聪明,他就非得要玩那个试玩星际吧,可能是啊,玩的就挺好的,所以一秒一分钟这个点击的话能达到300下吧。
01:10
300多吧,我不太懂这个概念哈,然后呢,玩完一局那个就是满头大汗。就是挺累的哈,就玩游戏要玩的好的话,其实跟你干别的一样,其实很多东西你一旦要玩的特别精的话呢,那难度都是挺大的,都挺累的哈,所以跟你这个学习是一样,但是人的话,你就愿意说玩那个我就不知疲惫,不知疲倦啊,学习的话呢,就感觉不行,学会的话就想出去,就想放松放松,嗯,对,其实你大脑里边可能就是当你玩游戏的时候呢,就是分泌一种激素,然后特别让大脑活跃,感觉特别爽是吧。你一学习的话呢,就发分泌另外一种激素,就是抑制你的兴奋,然后就特别困。那我们可以就是发明一种试剂呢,就是不想干的时候呢,来一针特别兴奋就可能就可以干了是吧。
02:03
嗯。来我们接着来写下边这个效果,热门理财这块呢,是一个流市布局啊,首先呢,关于这个流市布局呢,我们来说一下它的应用场景,这个呢,我们在很多情况下呢,都见过啊,上面这块呢,就直接呢是一个流失布局的一个,呃,在我们安卓端的一个显示就是做了这样的效果,这也是我们要做的一个效果,嗯,在这个传统的这个像这个。浏览器端啊,就是用这个HM啊,这个页面来写的,这其实也是一个流失布局啊,淘宝都登过。淘宝里边比如买一条裤子这个尺寸啊,这个不同的尺寸呢,其实这也是一个流失布局的一个效果,然后呢这呢是卖卖。不是陌陌啊,嗯,是挺看的,嗯,对,这个是一个就是职业生涯方面的一个因啊,陌陌是生活方面的是吧,嗯。这里边的话呢,就是它有招聘信息啊,招聘信息的话呢,就是呃,里边的这样的一些技术,你是应聘哪个岗位的,这呢也是一个流失布局啊,然后呢,这呢是就是木刻网。
03:12
木客网的话呢,就是一些问题,这也是一个流失布局。啊,那这个流失布局的话呢,总结一下,我们刚才看到这样一些笑话,或者怎么叫怎么去叫这个流失布局。哦,它是一种什么样的一种,嗯,设置的一种方式。哎,这呢是关于这个流失布局特点的一个描述。这里边的话呢,我们可以假设呢,摆放的都是一些test view。那么在这个布局里边说,随意摆放任意一个view。随意摆放啊,但是每行呢,所摆放的view的个数,根据实时计算出来的一个宽度。实时计算实时错了。嗯。实时计算出来一个宽度,说一旦当前摆放的view的宽度和之前摆放的所有view的宽度加在一起,超过了布局的一个宽度,那么就把该view呢换行摆放,能理解吧,嗯,就像我们刚才看到这个应用场景里边,比如说呢,我们就拿这个为例吧,嗯,整个这个布局的话呢,我们可以看成是嗯这样的一个区域。
04:22
那第一个往这摆没问题,第二个摆,第二个再摆的时候呢,我就看一下,呃,已经摆的这个这一行的长度,再加上我要摆的这个长度,加起来以后呢,如果没有超过你这个布局整个的这个宽度,那我就让你摆到这。第三个也类似,那第四个的时候呢,哎,已经呢,摆了这么长了,这里边每一个我们发现还有一个。边距这个也要考虑到,那已经摆了呢,那其实加上边距呢,可能是到这儿了正常了,然后将要摆的呢,是从这开始,你自己也有一个边距,还有将要摆这么长,呃,已经摆的这个长度,加上你将要摆的这个长度,发现它超过了。
05:06
本身我们这个布局的一个宽度,那此时呢,这一项呢,就要换行再讲,呃,换行重新的去布局显示到这儿,然后依次这样往下放。然后最终呢,就是呈现一个效果。哎,刚才说的这个呢,就是呃,我们的比较形象点去理解这个流失布局,那我们自己去绘制这个流失布局的时候呢,也是依照我们刚才这样的一个想法。啊,一旦呢,没有超过,我就能放到这一行,一旦超过了就换行再放。啊,那整个这个视图或者这个布局,它也有一个高度。啊,这个布局的一个高度呢,就是你一共放了多少行来决定的,每一行的一个高度的和。哎,就决定了我们整个这个布局的一个高度。那这个视图啊,不是这个布局,这个布局的一个宽度呢。
06:01
宽度的话呢,这其实就看你怎么设置的了,如果这个布局的一个宽度,我们设置成match parent。那其实就是相当于充满的了。这比如还是我们手机的,假如这就是个手机的一个界面的一部分,那如果你这个宽度设成充满的,那就你这个布局呢,就以你充满的这个算。那如果我这个布局的宽度设置成web content。叫次适应,那什么叫次适应呢?就是你刚好能够包住这个内容是不是就可以啊,那那如果我这个布局设置的是一个自适应。那你想想,我这个布局的宽度,是不是就应该有你摆放的这些视图组件的?一个实际情况来决定的呀,那如果你要是一个充满的,就是我这个红框黄的画的,如果你要这个宽度是一个自适应的呢,哎,我这个实际的这个宽度呢,有。哎,实际这个宽度呢,可能长的是这样。
07:02
是不是就管到这儿了,先不考虑这高度问题啊,可能就到这了。哎,这就我们说的叫web content自适应,或者说呢,叫包裹内容,呃,刚好能够包住你这个内容。就可以啊,就是你设置的一个宽度。啊,这就相当于是我们设置这个视图的这个宽高的时候呢,实际上就有两种不同的这个方式了,就。那下边呢,就提到这个设置模式,设置测量模式。就是分成两种,一种呢叫做精确模式,一种呢叫做至多模式。哎,主要呢,就是这两个,这种未指定的模式很少见,哎,我们来说一下。啊,因为这里边儿咱们涉及到涉及到给这个布局呢,去设置宽高了啊,所以我们就来说明一下这两个模式,什么叫精确模式呢?就是我们在指定一个视图的时候呢,在布局文件当中说指明了它多宽多高,就是一个具体的值,比如说100DB。
08:02
啊,这个非常精确的一个值100PX啊,也是精确的啊,包括呢,我们叫match parent,这都属于精确模式。啊,你充满那就是充满了,那复式度是多大,那你就是多大,所以就是非常精确的,那还有一种呢,叫at most,这呢叫至多模式。哎,什么叫直动模式?就是VIVO呢,最多可以获得的宽高值。哎,它需要计算所包含的子视图的一个宽高,最后计算出来的宽高的总和啊,就是就刚好能够包裹你这些子视图的宽高的,比如说web content就是典型的制多模式。就是它这个值呢,其实一开始呢,是不确定的啊,最多多少,就比如说我们刚才这里面的这个设置。如果我们这个宽度。设置为一个叫制作模式。至多至多,那你说它至多是多少。是不是就是从你这头一直到这头就至多的话呢,就有点像match了,但是呢,真正嗯,测量以后发现它可能是不是没有到你最多的这么多呀。
09:10
嗯,然后呢,他就到这么多了。啊,质量就是这个所谓的之多,哎,包括呢,我们设置一个test view也是一样,Test view呢,我们宽高呢都设置成自适应,那就随着你设置这个文本内容的一个多少,我写了四个字,四个字符,那它就这么长,我写了八个呢,那就是再长一点,那字体大小也会影响我这个test view的款报值。就刚好能包住你就行。啊,这都属于这个叫多模式的一个设置方式。啊,这个呢,大家关注一下啊,那我们这里边呢,呃,去绘制这个流失布局的时候呢,就需要考虑到它到底是个精确的还是一个直多的,呃,因为我们需要呢,确定一下呃,具体的这个布局到底应该给它多宽多高。啊,这个布局多宽多高,那这个布局如果你要是用的精确模式,那我就不用指定了,就按照你的来。
10:05
啊,你想多宽我就多宽,你想多高就多高,但是如果你要是用的是一个制作模式,那就是得看一下我里边这个死视图到底多宽多高,哪家是什么样子的,我这呢就给你指明是那样子的很高。啊,涉及到我们自己给他去设置一个测量的广告。然后第三种呢,叫做未指定的模式。那这个呢,比较特殊一点啊,就是你想设置多宽多高,我就给你多宽多高,那一般的空间呢,不会有这种模式,但是呢也存在,比如呢,说到这个。啊,就是考你像我们这个里边呢,精确人那不用多讲了之多呢,你撑死不就卖PAR吗。我手机屏幕就那么大,你至多就充满,但是sc view里边我们说呢,它是可以放那个指示图的啊呃,屏幕呢,假设就我们刚才画的这个蓝色屏幕就这么大。啊,那你要是想制度模式,那你撑死就这么宽这么高。
11:00
啊,但是呢,未指定的sc view,那我这个子示图你是不是想多高就多高啊。哎,你想多高,大不了我就往上滑呗。啊,所以说这呢,它呢,就像是一个位置定的模式。他没有制多的限制。啊,就这样。行,那在我们这里边说,在我们的流失布局当中,应该怎么去设置,呃,布局的一个宽高呢。啊,这里边需要涉及到这个叫on measureor方法。哎,然后呢,同时呢,我在这个流失布局里边,在online里边呢,就是测量自己这个布局的。到底你的这个范围是什么样子的?给这个布局呢,是这个范围,然后呢,在这个布局的。On layout这个回调方法当中啊,你再看一下这个布局里边,我们放了好多的这个子视图啊,咱就一个一个的往这放。放,然后再放,放不下了,超出你这个这个宽度了,那我就再换行放。
12:01
啊,又又超了又超了,那就不能往这放了,再往下放。那就这样的,哎,一个一个的,我们给它摆出来。啊,这样。那这呢,就是我们自己去一个流失布局。啊,有两个过程,第一个过程呢,叫。啊说啊这几个事呢,希望大家能理解一下啊,说如果布局指定的这个宽呢,是卖了。或者呢,你是个精确的宽度值,那么直接呢就可以从负控件传入到这个测量规格当中,直接呢获取你这个布局的一个宽度高度也一样,就相当于直接就按照你这个来,但如果你要是用的不是精确模式,而是一个制多模式,那么这个时候呢,我们就需要计算每一个子view的宽高。来决定一下你这个布局的一个宽广。这个能理解吧。好,然后下边这个宽度呢,是摆放的所有子没占据宽度最多的一行,作为布局的一个宽度。
13:02
高度呢,就是摆放的所有子位油总共占据几行,每一行的高度加起来就是高度的总和,作为我们整个这个布局的一个高度。哎,我们需要在这个方法当中,最终呢,指明你这个布局到底多宽多高啊,确定好这个布局以后呢,我们下一步就可以去摆放一个一个的子view了,在on layout就是这个布局的on layout的这个方法当中,我们去摆放一个一个的子view,我们已经说过view的生命周期了。哎,里边呢,这个方法中通常呢,就是可以给子view呢进行一个布局。布局的话呢,主要呢,就是调这个view的那个料方法啊,关键就是你怎么去设置他们的左上右下。哎,就是哎这里边呢,提到了这样的具体的一些做法,哎,获取每一个子view,计算它的左上右下啊这种这量方法设置的流失布局当中一个位置啊宽高这里边又描述了一下啊,S view占据宽度最多的那一行的宽度啊,那一行的每一个S标的宽度,加上这个marin值。
14:05
啊,宽度的话呢,就是加上左右的marin,高度的话呢,就是哎,加上这个上下的麻疹。啊,这个高度呢,指的就是整个布局的一个高度,就所有行的一个高度啊,然后每一行的高度,再加上它的这个上下的啊。好,嗯,这呢就是我们说的这样一个事情,关于流失布局的一个应用场景和它的一个分析。呃,下面的话呢,我们就具体的来去实现一下,来做成这样的一个效果。好,这个我们先停一下。
我来说两句