00:00
好,嗯,这个圆形进度条我们就画完了,呃,这个画完以后的话呢,我们整个这个界面的相当于是这个手界面的这样一个效果。可黑屏了,嗯。这界面的这个效果的话呢,我们就相当于是看出来了,就。嗯。但现在呢?我们还想再做一个事情。啊,这个卡到这了啊。嗯,这已经有了啊,希望呢,我们这个可以滑动的时候啊,你看我目前这个情况就是当我往下滑动的时候,嗯,倒是滑不了了啊,再往上的话呢,只能是看到这儿,然后再往上滑就滑不动了,诶我们希望做这个效果就是诶在这个基础之上还能再往下滑,然后这个呢,还是再能够往上啊就类似于是像iPhone手机这样的一样啊iOS系统呢,这个组件呢,是一个现成的,那我们这里边想做这个事情呢,就需要我们自己呢去定义了。啊,那我们就看一下如何去自定义一个啊mysq view实现呢,头部或者呃头部的一个下拉,或者是尾部的一个上拉这样的一个效果啊那具体呢,就去做这个事情好,那这个事情的话呢,又相当于是自定义的一个视图,所以呢,我们这儿呢,呃,站在这个UI下边,我们去创建一个class。
01:15
叫my will。哎,让他呢,就继承于我们现成的这个sc view。啊,这样啊,然后out enter,哎,这样提供一下这三个构造器。嗯,这样就行了,然后你可以看一下它,它里边呢掉的你看还不是我们所说的这个零了啊,所以这个时候呢,这三个你就别写成ZZ了。啊,也不是那样的一个套路了啊,就直接呢,放着这三个就可以行,这个写完以后的话呢,我们这个my view呢,我们需要在我们的home fra所对应的布局文件当中使用一下。啊,最上面的这个。改了,改成叫my ask you。就可以了啊行,嗯,这个写完以后的话呢,回到我们的MY下边这个重心就是来完成MY。
02:08
啊,这呢,相当于是自定义的一个view group了,算是啊。哎,自定义view group,就是整个我们自定义视图这块呢,呃,大体上就分成两类啊,第一类呢,是自定义的这个view。啊,第二类呢,是自定义这个view group啊,分出来这两类的一个目的呢,就是因为常常我们需要重启的时候呢,他们这个套路啊不太一样。想一想啊,像我们自定一个view,像刚才写了一个圆形进度条,一般情况下这view里边我们肯定会要重写它的什么方法呀,是不是按照方法呀,呃,一般都会要重写它的哈,就是你到底要画成一个什么样的效果展示,所以呢要重写它。啊,用这个coververse啊,那这个view group的话呢,呃,它是一个布局啊,它布局的话呢,它不会有一个展示的效果的,所以呢,我们一般的话是不会重写它这个按照的。
03:06
那一般重写它的什么呀?是不是on lay out方法呀啊on lay out,或者你还有这个on measure这也有可能啊,On measure,我们这是不是也有可能啊,我们不是也重写了啊,所以这个关于测量,你要想获取一些尺寸的话呢,该重写on measure都得重写,然后呢,这个呃,另外的这个on照呃这里边呢,就是on lay out,这有区别啊,因为我们自定义这样的一个布局的话呢,主要目的就是希望呢,诶就是按照我们自己的这种方式去摆放它内部的这些view。啊,所以呢,我们这呢,就需要去重写on lay off,就在你布局的时候,哎,我们里边呢,呃,相当于前提,你得先获取到我们这个view group里边你所放的这些view,然后呢,我们在on利的方法里边给你一个一个view,你想把谁放到哪,你就自己呢去调他们各自的啊料的方法就可以了,啊是这样的一个套路啊行这呢就知道啊,我们不同的这个集成的负类,我们通常都会怎么去重写。
04:08
嗯,好了,嗯,这个说完以后的话呢,针对于我们这个问题,我们来呃做一个分析啊分析我们要写的话呢,刚才说了一般的话,是不是只要你是一个继承view group的,都会考虑去重写它的on是吧?哎,看看该怎么去摆放这里边的具体的视图,嗯,但是我们这个问题当中,其实我们还倒没有说特别的要摆放它。啊,没有特别要摆放的,因为它这个摆放的话呢,实际上是还按照这个sc view的这个方式摆就行。嗯,但我们现在要做的事呢,就是这个sc view啊,它里边呢,有一个呃子势图就是这个linear layout啊嗯,这个linear layout的话呢,我们是希望呢,呃,它可以呢,在原有的基础之上,比说本身这个屏幕这么大,然后呢,你这个内部的0.layout呢更大一些。呃,更大一些,我们希望这个linear layout这个蓝色的这个框本身呢,它是不是可以,呃超出原本的这个,呃,Sc view的它的一个定义范围,还可以继续的让这个视图再去。
05:14
在一个更大的范围内,是不是调那个雷奥方法呀。啊,就说白了,我们这儿呢,还有一个T,呃,这个PPT哈,看这个图,呃,这个里边蓝色区域就是我们手机的屏幕啊,呃,这个红色的呢,就是我们sc view里边的这个子势图啊,就是这个0.lay啊呃,一开始的时候呢,应该是这个样子的。它价格这是齐的啊呃,一开始是这样的,我们是希望呢,呃,或者说默认情况下呢,它只能是在这个范围里边。呃,我们希望呢,就是在这个基础之上呢,还可以再往下拉。啊,那就相当于是我们啊还可以在,就是刚才的原来这是一个临界位置了,但我们现在还可以再往上拉,那说明你这个0.layout呢,还可以继续的重新被layout调方法去制定它的上下作用啊那那这个呢,我们怎么去做啊,相当于是主要呢,就是来随着你这个手往下去拽动的时候呢,它还可以再重新的勒。
06:12
啊,那重心呢,我们主要呢,关注的是不是就是这种事件的一个处理了。我们这个will讲这个view的这个生命周期的时候呢,不是说到了首先呢,你这个对象创建。啊,测量。然后。布局,然后绘制,嗯,下边还有一个是不是有个事件处理啊。哎,然后后边还有这个死亡过程,哎,下边我们主要关心的是不是就是你这个,呃,事件处理的一个过程。你像我们刚才说了,说group一般不都重阳的吗?哎,我们要摆放,但我们这个里边呢,还不涉及到说给他们改改位置。对吧。你比如说我们讲自定义控件的时候,是不是说过这个事儿,就我一上来的时候呢,比如说就像这个,诶就像这个新闻类啊,像以前那个网易新闻就是呃,我们一上来的时候呢,这块呢,呈现的就是那种,然后呢,我手往这边一拉,这是不是这个目录就出来了,哎,什么本地新闻呀,财经类的呀,科技类的呀,哎等等这个不同类别,相当于我一进来时候呢,它就呃这个里边这个目录就看不到,相当于它就在啊你这个自定义的这个view group on lay的方法当中。
07:20
哎,我一上来呢,现在就把你这个词视图呢,就放在这块了。啊,就我们有一个特别的一个摆放位置,而这个里边呢,我们其实没有给它特意的去摆放到哪儿啊,就还按照原来这个摆放就可以了,关键呢,就是我们希望做事件处理,呃,在原有这基础上,我们在往下拉动的时候呢,它还可以重新被定位,所以我们重点呢是要重写这个框衡。啊,这个方法叫什么呢。Are'not even now。你的沉默告诉我的意思就是。有点忘了。是不是重写他呀,嗯,对吧。
08:04
哎,重写它的话呢,就是你现在这个motion event,我只要呢触碰到你这个屏幕上,哎,Motion event对象就常见了,哎考虑它的档目啊。啊,这样几个事情啊,嗯,应该说这个,嗯,My school view这样的一个完成是我们今天的,呃,一个小难点,小难点就意味着后边还有个大难点。就是我们后边讲那个抽取啊,下午再讲抽取啊,漏定配置那是一个,应该说我们这几年项目里最难的就那块啊。好,那我们还接着说这个啊,这是一个小难点。嗯,该怎么去写这里边呢,我们是针对于你这个MY,它内部的这个linear out啊对它呢,去考虑重新定位,那你总得有这个对象吧,得得能找到他吧,那我们在这个布局当中怎么就能找到它的子势图了呀。是不是又得重写方法了,重写哪个呀?啊,这个中午得好好说一说是吧,中午看这分享的啊,On finish in。
09:06
啊啊,Finish inl的话呢,我们说这个方法只是在你在布局文件当中,这种生命的方式才会掉啊在这里边呢,我们可以用于啊,是不是要获取子视图啊。哎,那在这里边我们就可以。嗯,直接调用一下了是吧,要get child at,我们这就只有一个嘛。啊,这是你这个,我就叫一个view吧,这样的view。好,然后这个呢,我们给它凑到外面啊。好,这呢就要获取这个子势图,或者你这个时候呢,你再这样写人形说啊,如果你这个叫get child count是吧,当你这个count大于。嗯,零的时候,哎,我这么着一下。过去啊,也行啊。行,嗯,那获取到以后啊,那接下来呢,我们主要来考虑这个onto event这样的一个写法啊。
我来说两句