00:00
好,打开我们这个结构,找到我们的这个fragment,哎,我们要用这个hot fragment啊,那这个里边的话呢,我们先找到它的布局,布局是在这儿,呃,这个位置的话呢,我们就不是写这样一个文本啊,而是整个呢呈现了一个流式布局的效果,那整个这呢,又相当于是自定义了一个啊视图,只不过这个视图呢是一个流式布局,是一个布局,所以呢,我们还回到我们的这个UI这里边,我去新建一个。Class流势布局flow的一个料,哎,让他呢去继承于我们的VI group。啊,Out enter提供几个啊,一个是重写on料的方法,在呢,提供一个构造器。三个。嗯,然后呢,开始第一个,那第一个呢,又调了两个参数的,写了个no,第二个呢就调三个的,所以我们这呢可以调整一下。哎,这是调第二个这个这个呢,再调第三个。
01:02
嗯,这样的话呢,如果你要是有一些初始化的操作,我们就可以直接写在是这里面就可以了,行这个呢,就是我们作为流失布局,我们要写的这样一个结构。啊,自定义流式布局。好,那这个定义完以后呢,它作为一个布局出现,我们就把这个布局呢,在我们刚才的这个在热门这里边呢,做一个应用。的一个。这样啊,诶这呢,就涉及到你到底应该用什么样的模式去指定他啊。那我们这块呢,就是用户呢,是不确定的,那他也就是我们这个类呢,是不是应该是先造了。这个类先造了,然后用户才用,那你造这个类的时候呢,因为比较早,所以我是根本不知道之后用户到底是用什么模式的。所以我们一会儿在这里边,你去设置一下你当前这个布局的宽高的时候呢,你就要分析说,如果用户是这样造的是精确模式,那我就诶拿你这个精确的值去充当我的宽广,如果你要是用的是一个不确定的制作模式,那我得想办法,因为制作模式嘛,你是不是得想办法去找到这些子视图,嗯,到底最多的那一行是多少多宽,呃,高度和是多少才能指定你自己的宽高啊。
02:23
哎,得这样啊,所以说在这个附录量你完成的时候呢,就得考虑到用户可能写的不确定,不知道他用的是什么模式了啊,那我这里边呢,我暂时的,呃,先写成一个什么呢,先写成一个叫match的吧。嗯,然后高度的话呢,哎,我也写成一个match吧,先这样,嗯,然后我们给它去分配一个ID。哎,Flow啊,这我们就写一个hot这样啊,肯定是有的,安一下,嗯,这里边的话呢,我们再加上一个属性吧,叫background。
03:01
嗯,我们这呢,用一下系统的一个颜色enter。加一个背景颜色。嗯,这个这个是不是还还可以啊,再用点这个颜色吧。嗯,那整个呢,我这就写成是一个充满的一个效果了。行,嗯,这呢,我写成是一个。嗯,是一个卖拍,相当于是用的精确模式,那回头用户呢,也可以用的是,也可能用的是一个制度模式。啊,因为我这呢,随时都有可能改成是一个叫web content,这呢其实你写什么都可以啊。那回过来呢,现在重心呢,我们就是来完成一下这个flow layout啊这个布局,那你这个布局如果用户写的都是自适应。都写的是自适应,那你到底是多宽多高,是不是就是取决于你这里边到底放子势图是怎么放的吧,那我们这呢就可以先呢放一些随机呢,我们先放一些,就以这个test view。
04:04
为例呢,我们去摆放那test view呢,一般我们都是用自适应的。我这儿也是适应。然后呢,就是写上他们这个文本,我们就写一些这个文本内容,就让他这个长度宽的呀,窄的呀都有啊,这我们就写一些词。嗯,大家都想到什么词了?啊,我蔡,我我想想就是你是我心内的。一首歌,这个。嗯,这个我还需要加上一个,比如字体的一个大小划线。20。行,还有刚才大家说的这个有啥呀。涛声依旧,涛声依旧。刚才这是月落乌啼霜满天,太文艺了啊,整几个短的。
05:05
对呀。还有现在比较流行的这个叫啊,我的天呐。这样用啊,对,这个word还可以这样用啊。还有什么呀,你咋不上天呢,行?嗯,在这几个了。再整几个。你想怎样?是不是说这个有个段子,不是说这个东北的跟台湾的这个都是中国人,这个就说地方还不太一样啊,说东北的话呢,比如说这个这个你抢他女朋友了,那直接上来就一顿干是吧。
06:00
你要是在这个台湾的话呢,就是他一般找的呢,就直接你想怎样是吧,比较温柔啊。嗯,再来。再写一个。整点那个好点的。讲了一个夜曲。这是我上大学的时候听的周杰伦那边专辑的。刚刚出的很。行,这样的话呢,我们就写了一些里边的这些文本,这个文本的有长的有短的啊,是不一样的啊嗯,还能怎么着呢,就是我们给他呢,去相应的加一些就是这个Mar。Mar的话呢,就是它的有一个上下左右,我这直接就这样加Mar啊,就写一个固定了啊,上下左右都一样持DP。这是第二个。
07:00
三。嗯。啊,我们这儿呢,一共是放了八个text view。好,那我们希望呢,这八个台图有呢,显示的时候呢,就以流失布局的方式呢来显示。啊,那行了,我们下边呢,重点的就是需要去完成这个flow了。看看应该怎么去写啊。嗯,刚才已经说了这个问题了,我们去设置它的时候呢,我们需要考虑到就是你当前这个布局到底是多宽多高。嗯,多宽多高,所以呢,我们这呢,需要首先考虑到一个叫on measure方法的一个完成。啊,通过这个方法我们要做的事情啊,最终啊需要呢,能够啊测量或者叫设置。当前布局的一个宽度和高度。这个方法本身的作用呢,也是这样的啊,像我们这呢,重写了,你们也重写,那不就叫修吗?那叫super点进去。
08:09
这个方法做的事儿就是设置一下你测量的一个尺寸,说白了就是设量测置这个设置你当前这个布局的一个宽高啊,整个这块这个get呢,就设置它的这个宽度的啊,后边这个参数就是它的高度的,那那就意味着我们其实最后呢,也是希望去调这个方法。当然不是按照他这个方式了,那就我们得看一下咱们应该怎么去设置啊,这里边呢,需要一个是宽,一个是高啊,一个宽一个高。啊,那就相当于我们就不让它自动的再去设置了。那我们自己要设置的话呢,那就得看一下人家这个布局。回头用户用的时候,他到底是用的精确模式啊,还是一个呃,至多模式是不确定的,所以我们得需要去判断一下。啊,这个事情呢,需要大家能够理解一下啊,去判断一下用户到底是用的精确还是用的之多,那我们就得上来可以先这样啊获取啊这个设置的。
09:11
这个叫什么宽高的模式和呃,具体的这个值可以这样啊,那我们这呢,有一个叫measures back啊,它呢有这个先的方法,一个呢叫get mood。把你这个宽的这个放进来。啊,这呢是得到用户回头自己在设置的时候呢,这个宽度它用的是一个什么木的。啊,那类似的。Get一下mode,把高度放进去。哎,高度的一个mode。哎,这呢是获取用户设置的这个宽高的具体模式就两种,一种呢叫精确模式,一种叫直多模式。啊,这个呢,就是你看回头设置好以后,用户啊,就能够在这动态的去获取到。
10:03
嗯,那以及的话呢,我们还可以获取一下它具体的这个值啊,Measure respect,点我呢,Get size。那这个呢,放进来。这是一个。哎,这呢,相当于是得到这个宽度的一个size。哎,以及呢,得到一个高度的size。嗯,这个呢,要能够去理解。这个宽高的话,这两个数值如果用户指定的是精确模式。那这两个数值是不是就确定下来了,那既然你是精确的,你不管你设成100DT,还是说你设置叫match current,那么就拿这个数值是不是就当我们最终你这个布局的一个整体的宽号啊。应该是这样,那如果这个用户用的是叫多模式。至多模式呢,这两个数值也能够获取到。
11:03
也能获取到,就你至多至多至多的话呢,就是你给我留了多少空间,我就哎设置多少空间,比如说呢,在我们这个问题当中。就先把其他的都先关一下。在我们这个问题当中,那如果呢,我们设置的是一个叫至多模式宽度板。至多的话呢,实际上还是是不是我们这个整个这个这个屏幕的一个宽度至多嘛。就至多这个时候呢,我们仍然是可以得到这个数值的啊,这个数值呢,其实还是在我们这个问题中,还是你的屏幕的个宽度,但是真正你在去给他付这个尺寸的时候,你是不能付这个屏幕的宽度啊,人家至多是最多能达达到那么多,但是你实际上呢,是不一定能够达到那么多的。啊,应该是这样子的,那到底你要是用户真的设置成是制作模式,那到底应该是多少呢?那我们就得是需要自己来计算一下,我就先假设它这个宽度呢,先是个零,我们通过这个测量的方式呢,去找到它至多或者它就是在制多模式下到底应该是多少。
12:16
哎,这个呢,我们先这样标示一下就是,呃,如果用户设置的是啊,或者叫使用的是至多模式。制度模式,哎,那么呢,就是使用如下两个变量。啊去,嗯,相当于计算。啊,这个真实的宽高值。这个呢要能明白。就是虽然你吃多呢是充满,但是真实的时候呢,你不一定就充满了。啊,所以真实的就是这两个数值,那如果用户使用的就是精确模式,那其实是不是就是这两个数啊。
13:01
能理解吧?要能够理解这个概念,那最终呢,我们给当前布局设置多宽多高,那其实就也取决于它的这个模式。最终呢,我们这要设置当前流式。布局的一个。看到。哎,就是你取决于这个模式了,所以我们这里边呢,可以先给它写上,哎,我们这里边设置一个宽一个高,我们就看一下它的这个模式,比如说这个宽的模式。宽的模式,嗯,这个我们看一下啊,等加括号吧。花的这个模式呢,如果你等于,哎,我们这呢叫measure respect点你是一个exact,就是京剧模式。如果是个处。如果你要是处,那是不是就拿你精确的这个呀。如果你要不是一个精确模式,是不是就应该拿我们自己给他去,哎,计算出来的这个外重达,那应该这样了,那逗号高度的话呢,同理。
14:07
哎,高度,如果你的这个高度的这个模式。啊,等等于啊,Measure respect点是一个except的,你如果是一个精确模式,那我就拿你这个啊,Hat set充当,如果你要不是呢,我们就自己去算一下你到底应该多高,哎,这样的话呢,就把这个流失布局的一个宽高给它确定下来。啊,那下边这个重点的话呢,就是我们在这个位置呢,去写这些逻辑去计算一下,如果用户使用的是至多模式,那到底应该是多宽多高,那具体的来讲,是不是应该取决于它里边放了这些组件的一个情况。同样你到底是什么样特点的,那如果是制动模式,那就应该是你可能会有好几行了哈,那这个最多的或者是最长的那一行,应该作为我们这个流失布局的一个宽度啊,高度的话呢,就是你有几行,每一行的高度呢,都加起来啊,到底是多高的作为我们流失布局的一个高度。
15:10
啊,所以我们首先要做的事情呢,就是要确定一下这个流式布局它的一个宽高。哎,给他做一个测量。哎,那下边中心呢,就是完成这个was跟he的一个复制。哎,到底看一下如果是制动模式到底是什么样的。行,嗯,那下边呢,我们就开始去计算一下这两个值了。嗯,那计算这两个值想一想啊,我们说了取决于你内部的这些此视图的情况。那我们下边要做的是,首先呢,得把这个子视图一个一个的都得找到啊,哎,所以第一个呢,我们就要获取。啊,指示图啊,这呢,我们可以先呢,Get child count。先得到一个child count,然后方循环FOR1I等于零,I小于count。
16:03
哎,遍历一下,然后我们叫get child at。哎。那这样的话呢,我就找到了每一个child view。哎,就是获取一下每一个姿势图。那这就找到了哈,那我们要想计算一下这个Y,我们说了哈,你得这个一个一个的得去考虑一下,那这个过程当中,我们刚才讲了说这个Y字应该拿,哎,比如说摆放了五行,五行当中每一行呢,都有一个长度最长的这一行呢,作为它的值。高度呢,应该是五行的累积和,所以我们这儿呢,还得需要另外再用到两个变量,就是这个每一行的。嗯,宽度。哎,到底是多少。In一个S。先也是个零。
17:03
那这也是个零。行,那我们就下边呢,就得一个一个的视图取出来,然后呢,哎,一个一个加,看看这个能不能超过它这个一行的最长的,超过了就换行,那你下载这些值量去做一个复值。好,下边呢,就得开始来写了啊。那下面我们要做的事情呢,就是先在这里边,我们呢,叫获取子视图的一个。百分之。嗯,视图的它的一个宽高,那我们就直接呢,就想是拿的这个,哎,Child view啊,去get一下他的measure wise啊这呢就获取他这个此视图的一个啊child我写上它的一个wise了。哎,好,然后呢,再通过这个child will点啊,Get your married hat。来获取每一个这个指示图,它的一个派。
18:01
啊,但是这里边我们再说一下,就是要想获取这个子示数的宽高呢,我们这里边儿呢,还得需要去调用一个方法,就保证这个是可以获取到的啊,这个方法的话呢,我们在这个思维导图里边可以看一下啊,有一个这个。叫my child。哎,叫my child啊,我们在获取之前先要添加一下这个方法。Measure child,把我们这个child view呢放进来,嗯,然后呢,再把你最外层的这个宽高呢也放进来。哎,在这写一下啊,说只有哎调用了如下的这个方法方可来计算,然后呢,此视图的一个宽高。嗯,或者叫测量的宽高。那也就是说我们这两个方法啊,要想能够调用呢,我必须得,哎,先得做这样一个设置才行,行,那设置完以后的话呢,我们就可以获取子视图一个环包了。
19:05
啊,那我们下边具体再算的话呢,那就得有一个一了。啊,衣服你要干什么呢?就是我们要一个一个的试图,把每一个试图呢,就往这一行呢去摆。嗯,摆一个看看能不能摆,能摆啊,再摆,嗯,再摆一个,看能不能摆,不能摆话啊。啊,所以这个衣服看看怎么写啊。哎,是不是应该这样说,如果。我这一行的。已有的一个宽度。那当然你第一次进来它就是零了啊,那你后边的时候呢,再负循环再过来它就不是零了啊,已有的这样的一个宽度,再加上是不是我这个差的一个宽度啊。就是你这一行已有的宽度上是我再加上一个子视图,看看能不能再放下去啊。哎,加上他那你管家他还不行,有可能这些view是不是有这个marin啊。
20:01
是不是有这个边距啊,这边距是不是左右边距也得加一下啊,那我们相当于是不是得提前还得获取一下左右边距啊,哎,在这啊,我们通过这个叫child will第get他的嗯叫嗯,Margin啊,就获取他的叫layout parents。啊,获取它的这个设置的这个参数,这个参数的话呢,就是我们这个啊margin layout。等于这样想,那这呢得做个强大。嗯,哎,这呢,我就获取了你这个死势图。啊,关于它的边距的这样的一些参数信息。哎,那要想能够获取到这个方法啊,在这说一下,说要想保证可以获取。子视图的一个编距参数。啊,对象是必须。调用啊一个方法,这个方法呢叫generate layout parents。
21:04
啊,又得涉及到一个方法啊,这个方法呢,是我们这里边呢,哎,这个view group里边要重写的啊,Generate parents。在这写着呢,啊哎,相当于呢,就是要想能够去获取此视图的一个编辑对象的对象,哎,编辑参数的对象必须呢,要调一下这个方法。两个事啊,过去边距要调,下边这方要重写,下边这个方法,嗯,必须重写。哎,要想获取视图的宽高,必须呢,要这个方法。这里边儿需要注意一下,那这个方法怎么写。嗯,在这里边呢,我们就需要呢,去new一个,New一个呢叫margin layout。然后这里边儿呢,我们去填这个参数。哎,我们用一下第一个啊,Get一下contest,然后at t s。那这样呢,我们去做一个创建。
22:00
啊,叫MP吧,来return一下这个MP。哎,这样就可以了啊,就是保证呢,我们这个呃,Layout的P呢,它就是一个边距的对象,否则的话呢,你要不重写这个方法在这强转的时候就出错了。嗯。好,那这个边距有了以后呢,我们在这个位置。是不是这一行的一个宽度。哎,再加上你当前要放的这个视图的宽度,以及你的左边距,加上你的右边距。这个累加起来以后,判断一下是不是超过我最多可以放的这个宽度了。是这意思吧?哎,这个我们比如说看一下这个图。来看这个图。嗯嗯,一二,我现在呢,要放三就一二呢,目前已经是有一个值了,就是我们从这计算到这,这就是你这一行的LA wise。
23:06
啊,我在放三的时候呢,你就是在这个值的基础之上,再加上三的测量宽度,以及三的左边距和右边距,看看加起来以后的这个值有没有超过这个值。这个值怎么去表达呢?你要是个精确模式,那是不是就是你到底精确是多少,有没有超过这个精确值啊。嗯,那如果你要是一个至多模式,至多至多你至多是不是也是这么长。啊,所以说我们通过这个操作。哎,通过这个操作获取到那个值,你要是精确是有精确的,你要不精确值多的直多在我们这个问题中其实也是一个的。所以我这呢,就相当于跟我这个Y的S去比较。啊,这个可以考虑一个等号吧。啊,那已有的这个宽度,再加上我现在要放的这个发现呢,如果是小于等于。
24:04
那是不是就放到这一行上,那就意味着这个位置其实表示的是不换航班。嗯,那else。那就是需要考虑换行了。啊,那你要不换行,那你想我不换行,这行要干什么。嗯,那你这一行的这个宽度啊,这一行宽度应该是不是加等于我child的这个宽度,再加上这个值。这样吧。那就相当于这行的宽度不是变了吗?没换行啊,那高度用用用考虑。怎么着啊?高度,这一行的高度,比如说我这有个一了,我又放了个二,说我这一行到底多高啊。这应该是,呃,你已经获取到了这一行的高度,跟我又放的这个高度比一下,看看谁更。
25:03
值更大是吧,比如说你这放了二,发现你这二的这个高度呢,你看显然这个更比我现在这个高度呢,要要小,那就还有我这一为例,那你要是比如还能放个三三呢,就这样,那你就是用三的了,所以这个时候呢,它应该。是不是叫等于ma.max。嗯,已有的这一行的高度,跟我当前的要放的这个视图的高度,加上它。点top money加上点autumn money是不是这样?对吧,哎,这呢是你不换行的时候。家还有别的事吗?往往里放,宽变一下,高变一下就可以了,这时候你是不是还整不了这俩了。这两个不行啊。行,那现在的话呢,我换行了,就是你现在要加的这个元素发现超了。啊,行。
26:02
那想想换行要干什么?银行。呃,先不用记录子势图脑啊,呃,多少个,其实对个数已也不太先不感兴趣的,我们这个呢,主要关心的通过我们这块的操作,主要目的是要给他俩赋值,就这些呢,变量都是为了给他俩赋值呢,哎,我们需要有定义的变量啊,那现在我一换行,你像这个宽高目前有戏嘛,能不能给它们再。做一些操作了。你像我一换行了,这个时候我这个外。那你得看一下我已经知道的,呃,这个行的最大的跟你现在一换行,你一换行,那你前面那个那一行的是不是就已经确定了,它就是多长了多宽了,应该说。那我就应该这个外,是不是判断一下max.max我已有的这个宽度跟你刚才一换行,那我就是换行以后,你刚才换之前那一行的这个宽度比较一下,看看谁大是不是当你这一行当它的这个最大值。
27:14
对啊。就比如说我这个一跟二,那第三个这个换过行了啊,然后我之前的这个一跟二这个加起来,这一行的宽度就作为我们的Y那三次也走了那五。哎,五一计算五换行了,那五一换行,就比如我们这里边,哎,我们呢,就拿已有的这个宽度,那就是一二的这个宽度,跟你这个三四的这个加起来比一下,发现三四呢更长,所以呢,我们就重新再给它做一个复制。啊,那这个高度呢,怎么找。哎,是不是应该加等于你刚才画行那个时候的上面那一行的一个高度啊。对吧,对,那这个完了以后。
28:02
这完了以后你想我都换行了哈。嗯一二,嗯,比如三四,我这个五是换行的,五一换行,你这一行的这个long white long hat是不是也应该重置一下。啊,那你这行的这个LA wise等于多少。嗯,零吗?你不都换行了吗。等于零,那你这个五不是没考虑吗?你是不是应该你把这个五得给它加到这啊。对吧,那这个那part呢。单害的不就是你这个?是这个吧。Contry。这样呗。对吧,嗯,这相当于是个重置啊。啊,重置完以后的话呢,其实我们细细的去分析一下呢,还差点意思。就是按照这样的一个逻辑,我们放循环不停的这样走走走走走,按说的话呢,是不是宽高就已经都能算好了。
29:04
哎,就是这个宽高呢,应该是都都已经做好了,但是呢,呃,一测试发现好像不对,漏了点东西。哎,漏谁了呢?发现最后一个元素。给漏掉了。嗯,怎么来理解这个事儿呢,就是比如我们放这些,我放第五个的时候呢,这个第五个一下子这么长。结果最后发现呢,这个Y呢,以这个为准了,发现第五个给漏了,包括这个高度的话呢,也是这个这个高度了五就完全给漏掉,然后呢,回过去我们一发现看这个代码一分析,发现最后一个元素确实给漏了。那怎么就漏了,分析一下先,我先写上这个逻辑啊,如果这个I呢,正好等于。我们最后一个元素。说最后一个元素呢,你没有参与到我这个wise和hat当中,这怎么去理解?
30:06
那我们就分析一下呗。我现在最后一个元素,假设最后一个元素不换行。假如他不换行啊,就比如说我们好比这个第五个呢,还放在这个四的后边了,那不换行,那三四的这一行我一一放一一判断,发现好不换行不换行,那我就把这一行是不是计算了三四五一共的长度。还有他们这个这这一行的这个高度计算完以后。Else,是不是就没有进去了,没进去,然后你要也没有这个。那相当于你这个宽高,是不是就没有考虑345这一行的事儿啊。对吧。嗯,你没画好345的这一行,你根本就没有参与到你这两个值的计算当中,所以呢,你少了这个事。你应该把当你是最后元素没有换行的时候呢,把345这一行,你看一下人家这一行的长度跟你现有的这个谁大,以及呢,你把345这一行的这个行的高度应该加到你总的值里面。
31:06
所以少了这两个家长。这是没有好啊,那如果要是好了。换行了,那你考虑一下三四,然后五的时候呢,要换行,五的时候要换行,那我就过来这个宽这个高,有这样一个操作。这个操作问一下他判断的这个long是哪一行。是不是三四的,诶,三四的宽度,三四的高度都加上了,那然后其实这就相当于又重新置了一下这个是不是拿了个五,哎,就重新给更新了一下这个宽高啊。那你这一行第五个这一行是不是没有算进去。如果你要没有这个的话。还是把五的这个给丢了,所以我们下边再加上一个这个操作,如果你是最后一个,是不是还是把你这两个考虑进去啊。所以呢,不管是换行也好,没换行也好,都要加上这个操作。
32:02
能行吗?行这个呢,要注意一下,行这个写完以后,我们下边这其实就就完事了啊,我在这加上一个log,我看一下什么呢。嗯,Y是size等于。Size。这个相当于是,呃,如果他要是一个京剧模式。或者你是个制动模式也行啊,就是你最多呢,到底能够显示是多宽多高。啊,再来一个,这呢,就是我们计算出来的这个Y。这个然后呢,做这样的设置行,我们这时候呢,跑一下看看。
33:09
啊,点击投资,点击这个热门。进来这个进来,因为我们把这个。这个这个高度设置成这个match part了啊,那这块呢,我们先先改一个最通用的一个方式吧。就是这里边儿,我们把这个,呃,弗罗利奥的这个宽高呢,我们都给它设置成是一个这样的模式。哎,都是这样的。这不准,因为这呢,你还没有涉及到往里放数据呢,然后再跑一下。诶,长这样。嗯,张丽来这看一下。嗯。看看啊,嗯,Y的size height size,这呢,是不是就把它当成是像充满一样的这个值啊,其实就是相当于是从这。
34:09
整个这样一个框吧,这个值。就是768这个值。就是944。啊,这个呢,就是944,嗯,然后这个Y跟这个hat应该这个Y650,是不是就是它呀?啊这个高度282。就是这个吧。是这样的。那我们这个问题当中呢,哎,我都设置成是一个,就我们这个布局里边都写成是一个,哎至多模式的,那相当于我们看设置这个布局,我们就都以这个至多模式这个设置的,所以它就是这么大。啊,那如果你这个都改成是卖是parent了,那很显然你这个就整个一上来是不是就全充满了。理解一下,哎,我们这呢,就先来确认一下你这个,嗯,整体的一个宽高啊,先明确了,然后接下来,哎,你有了宽高了啊,那我就可以一个一个往里边去放这个子势图,到底看看你是在这一行还是下一行。
35:12
啊,一会我们先来写这个钥行,先休息一下。
我来说两句