00:00
好,那接着呢,我们来说这个内容啊,下边这个内容的话呢,我们不涉及到具体这个界面的这个完成了,哎,我们呢,就相当于是在做一个深层次的一个功能,就是关于抽取这样的一个功能的这个实现啊,真正这个在项目当中的话呢,我们呃,有一些这个代码呢,都是需要进行抽取的,并不是说直接我们这个,呃,Fragment就直接啊就这样去写了哈,很多这个代码呢,一旦功能相似,我们就会做一些抽取,比如说呢,我们首先这里提到一个关于fragment的一个抽取啊,这里边呢,我们可以考虑呢,就提供一个通用的fragment,这里边有这样的一个举例说明,哎,我们这里边一共提供了这四个基本项,每一项呢对应一个fragment,那这个fragment里边有一些操作呢,都是相似的,比如呢,我们都会去,呃,重写它的on create view方法,都需要进行一个视图的一个加载啊,然后以及相关的,呃,他们都还有这个common的一个title啊,最顶部的这个title啊,都是这些通用的。啊,就是最顶部的这样一些,那我们就可以考虑呢,把这些操作呢,给它统一的给它抽取出来啊,像这些的啊都是属于通用的行,那我们这里边就可以去创建一个叫base fragment,然后呢,分别呢,让我们四个,呃,这个fragment呢,去继承于我们这个base fragment啊就可以了,好,那首先呢,我们来做这样的一个事情啊,找到我们这个代码,然后呢,在common这个层面,我们去提供一个啊这个注意啊,我们这时候呢,我就不去造一个像这样的,我就直接造一个啊嗯,这呢就叫做fra,让他呢去继承于我们的这个注意是下的,别写错了啊,然后呢,他就会考虑去重写on create view啊先不着急去这写啊,我们可以这样来做,来找到我们现在写的比较多的这个叫home fragment home fragment里边呢,我们重写。
01:59
写了这个叫onre view,现在我们考虑把这个方法呢,给它拿出来啊,我先呢CC一下啊,啊拿出来放在我们的这个base fragment当中啊,放在这里边,我们现在呢,想把它写成是一个通用的一个结构了啊,那既然是通用的,我们这里边有一些东西呢,就不能够呃看到了啊呃,比如说首先我们涉及到去加载你这个fragment的一个视图,呃,那这个位置呢,就不能够写死啊,应该是不是暴露出去一下,哎,我们这个叫get。
02:31
Layout ID这个方法呢,我们应该定义为一个抽象方法。啊这呢,我们就先这样造一下这个方法啊,然后把这个给它关掉,注意呢,抽象呢,不能声明为private这个public。哎,然后当然我们这个当前类呢,也就必须得是个抽象的啊,这就这样啊,这呢相当于是提供一个抽象方法啊,用来初始化我们这个fragment的一个布局啊,提供一个布局,然后呢,紧接着需要做一个绑定。
03:09
啊,做个绑定,绑定完以后呢,这里边有初始化这个title和这个data的操作,这两个呢,我们也分别定义成这个抽样方法。来这就可以了啊,这呢是初始化我们这个title,哎,这呢就是我们整个界面中数据的一个初始化行,这样写完以后的话呢,我们这时候回到我们这个home fragment的这个层面考虑呢,对它进行一个整合啊,整合的话呢,你看我们这里边这个操作,我们就不让它再去自己重写这个方法啊,把它呢注释掉啊,而是由我们这个负类来重写,那你就得需要更改一下你的负类啊,改成叫base fragment,改完以后呢,你需要重写你自己的这个方法啊,Get layout啊这里边你看啊,其实有三个哈,因为我们这里边两个都已经写了,你只需要把这个权限呢给它调一下就行。
04:13
啊,CTRLC这其实也是一个了啊。哎,然后我们这个也是一个啊,这样都拿过来啊,那这样方法呢,你看这个啊,这个操作本身的话呢,也是一个通用的啊解绑的操作,把它的也拿放到我们里,放在这版解绑,对是的啊,就是版本高的话呢,这个就没有写了,那这时候呢,你根据它这个版本自动提供的,写完你就给它粘过来就行,呃,然后呢,这里边layout这个需要去提供一下啊二点啊layout.frament home啊这样就行了啊,这两个操作的话呢,你可以给它放前一点就行啊,放在这块shift一下。
05:02
这是不是就写完了就嗯,这就写好了就啊,那这个时候呢,到我们这个mayit加载我们显示首页的时候,我们这个home呢,就要创建,然后呢,呃,事物一提交,一提交,这时候我们就会去调home fragment这样的on credit view方法啊,此时呢,我没有提供,所以呢,它就会到base fragment里边去调它里边的这个啊这个里边呢,分别的又调用了我们刚才重写的加载一个布局初始化,Title始化,对。啊,其实就都给我们搞定了哈,解绑这个呢,也是一个通用的操作了,行,那类似的我们就可以把其他的这几个fragment呢,进行重新给它改造一下啊,改造的话呢,我们也是这样去做,修改一下他们的类啊base重写他们的抽样方法,这个目前我们还不涉及到,所以先不用管啊,这个呢也改一下。
06:00
嗯,这个呢得写一下了二点啊layout.fragment啊,这个呢,我们负类里边已经有了,干掉。嗯。这个是就整个就不要了就可以了,那么这个就好了,然后面这个样的理base fragment。写个public,写个protected都可以,还是第二第二第二这个也不要。然后这个呢,给它删掉。
07:00
哎,这个呢删掉,这个呢也删掉。哎,保存一下就可以了啊,这个时候呢,再呈现给我们的这个fragment就是我们需要重启的,呃,这三个方法啊,哎,指明你自己的布局啊,然后呢,你上面有个通用的抬头设置一下,然后呢来初始化我们的数据,整个呢就在这里边体现,哎回头我们再过来呢,写不同的页面,主要呢就在这里边,哎去重写这个方法就可以了啊好,那这里边儿我们这个base fragment呢就造好了啊,相对还是比较简单的啊,我们这时候运行一下,看看它报不报错啊,没错呢,说明整个修改就是成功的。好,欢迎您们进来,这是我们这个啊,这个没啥问题啊,正常我们这个滑动都可以,然后呢,投资这个这个啊都行好,整个呢,我们这个修改呢,就是成功的。
我来说两句