00:00
啊,这个fragment呢,是我们讲安卓技术里边最后一章讲的。嗯,把这个屏幕拨一下。啊,嗯,看一下我们这个课件里边。按照基础最后一个fragment。哎,关于fragment的这个使用的话呢,呃,你能够把这个思维导图里边的内容能够都理解了就可以了。啊,那这个当时咱们讲课的呢,是按照这个12345的这样一个顺序去说的哈,那这里边呢,我们就相当于插入一下,首先呢,关于fragment的一个理解啊,这里边呢,就是翻译成叫做碎片啊,当然这个翻不翻译都不重要啊嗯,主要目的呢,就是为了我们在这个activity,就整个我们这个页面在使用的时候呢,只其为一个布局,使用起来不方便啊,哎,我们现在也就是把它呢可以割分割成好几部分啊哎,每一部分呢,就是一个fragment有自己独立的生命周期啊,不是一个像原来完整的一个activity的啊,一个完整的生命周期了。
01:08
啊,就是使用起来更灵活更方便一些啊。哎,那这里边儿呢,就刚才这个两个同学也提到了啊,说这个fragment呢,是一定需要嵌入在activity中使用的。啊,就是它呢,你可以理解成是一个宿主。啊,就像比如说一个生物一样,这个叫宿主,这样呢,就是寄生在这个生物里边,这个一个寄生虫一样。啊,一听感觉这个金融好像是一个贬义词啊,其实它应该算是个中性词啊,哎,所以呢,就是FG必须依赖于activity才能存在。那么反过来呢,一个activity呢,就可以由多个fragment所构成啊,是这样的情况,当然呢,你最少也可以有一个啊就行啊,那如果一个activity呢,就是里边包含了fragment,那这个activity有什么要求啊。对,它的负类变了是吧?哎,对,继承于这个,哎,是不是fragment的activity,哎,就这样啊,既成于fragment activity的话呢,那相交it里边又多了一些方法啊,比如你可以get support fragment manager啊,这样的方法就可以有了啊呃,具体的话呢,这个fragment呢,就可以有自己的生命周期啊,自己的输入事件啊,然后呢,哎,可以呢,从运行的it中添加或移除啊,这呢,我们使用这个失物啊,刚才大家讲到的啊。
02:28
然后呢,这里面就要说这个fragment呢,本质上会产生一个frame layout来加载它对应的子布局。嗯,就是我们呢,比如提供了一个这是一个fragment啊,哎,我这个最在这个布局文件当中,我们呢,是用个linear lay out写的啊,真正的我们通过这个,呃,前两天我们不是也通过这个布局的这个结构图来看一下啊,哎,你这个fragment呢,看这个图里边时候,哎,这是你的linear out它的上一层呢。哎,对,是一个,哎,Frame就多一层这个结构啊,基本的观察它一个理解啊,然后这个fragment呢,我们是说是存在这个微四包下的啊,这个微四包呢,我就不用多说了,就是为了适用你3.0以上的这个,呃版本新增加API,在低版本中可以使用啊,所以引入了一个炸包,相当于是啊。
03:19
好,这个微包呢,我们里边提到两个比较重要的这个,呃,相当一类哈,一个呢就是fragment,一个呢是view Peter,这我们整个在这个应用当中呢,使用是非常广泛的,尤其这个frament现在是一个主流,嗯,在activity里边呢,我们都可以把它分割成几个fragment来用。啊,这里边我们就提到这个微包,这个呢就不多说了啊,然后呢,下边就提到关于这个fragment的相关的API啊,这里边儿呢,还是比较多的啊,哎,我们说一说比较常用的。嗯,首先fragment呢,那一提到他常用的,那基本上主要指的就是它的生命周期方法。啊,比如说on view on activity created。
04:04
C created。我觉得是created是吧,所以这个少个D啊。行,这两个生命周期方法呢,应该说是用的比较多的,嗯,然后这个方法用的也比较多。啊,比如说你在这个fragment里边,你涉及到去加载一些组件了啊,我们上午讲那个contest的时候呢,你可以通过get activity去获取这个activity啊,作为contest的一个实例。啊,这是我们说这个fragment里边呢,呃,常用的这个方法啊,呃,以及呢,我们在这个fragment里边,其实它也可以是不是获取这个fragment manager。我看应该是在。嗯,在在在哪写过这态加载,静态加载。嗯,这还没有写这个事啊,就是我们通过这个fragment呢,其实也可以获取他的一个。嗯嗯,管理器是吧。
05:02
会有一个管理器啊。嗯,行,然后下边的话呢,就是提到这个activity,嗯,Activity的话呢,我们说fragment activity,它里边才可以放fragment,可以通过这个方法获取一个fragment manager frag manager呢,哎,第二用这个方法得到一个哎,Fragment的一个事物。转三啊,事物呢就可以先。啊山啊改啊,这个我们说叫改或者叫替换了啊,那这个替换呢,刚才两个同学说了,它的本质呢。是不是先啊对,然后接下来呢,呃,再调一个爱的方法,哎,所以我们如果呢,用户会出现呢,就是我从第一个fragment切到第二个,呃,第二个呢,又切回到第一个,其实我们是不建议使用replace的,嗯,而是呢,就像我们写这个应用里边是不是用这两个方法去切换。对啊,就是第一个切到第二个,这第一个呢,Head第二个手。
06:00
啊,再翻回来,哎,第二个呢,还在第一个手,哎这个对象呢,并没有销毁,提高了加载的速度。那这些方法呢,要想能够执行。啊,就是这个方法你调用完以后的话呢,呃,它虽然这里边呢,我们需要往里放这个fragment这个对象,但是这个对象创建了,呃,相应的生命周期方法调它才有对应的一个页面的一个显示效果啊,才利用那个view了,哎仅仅是这样调还不行,哎必须得得commit一下才行。啊,也就是说只有computer以后才会去调用fragment的生命周期方法,这个我们已经,哎,就通过这两天的练习已经强化过了,啊说了这个事情了。好,这个呢,就是嗯,我把这个一,嗯,比如说你给它替换成这个二了,就是做一个replace的时候,我可以把这个一呢,再添加到这个返回站里边。啊,此时的这个FRAGMENT1的话呢,死了吗。对,它就没有死啊,添到这个站里边了啊,所以呢,你可以出现当用户返回点返回键的时候呢,呃,如果一到二了,我再点返回键是不是就退回到一了。
07:07
啊,就是如果你是做了一个replace的话哈,那一呢就没有死啊,因为有这样的方法。行啊,这呢是我们说的这个API了啊,然后呢,比较重要的呢,就是我们说的这里边儿这三个点。啊,一个呢,叫静态加载,动态加载啊,以及呢,生命周期。啊,先说这个生命周期。生命周期这块呢,呃,方法比较多。啊,一共是有11个方法。嗯,这些方法呢啊,我们呢,也是按照就像前面讲的这个it一样,分成四种状态。嗯,可见可操作,可不可操作暂停停止的啊,死亡的。啊,这是我们说的这四种状态啊,那我们关心的话呢,也是四种状态之间在切换的时候呢,哪些生命周期方法会调用。当然这个重要性的话呢,呃,相较于继续来讲就要低一点,因为一般没有人非得去考这个frament生命周期切换的一个状态。
08:05
啊,一般还没这样考过啊,It呢到考it目前考的话呢,呃,原来呢,是在这个面试当中考的多一些,现在笔试里边呢,倒是会经常出。啊,就相当于是这个重要性,嗯,就是大家越来越认为这个,你比如说我it从这个切到这个,呃,哪些方法掉了,就是那些细节的哪个方法里边,这个是做什么事儿,就是我们当第一天复习的时候啊,呃,那个需要大家掌握,真正你说一切到二哪几个方法掉了,这个就比较简单,人家都。不怎么问了啊。嗯,像以前刚有这个安卓成员的时候呢,大家相当于都是看书啊,看帖子啊这样去学的啊,啊那比如说你一开始是这个写账号后台的,安卓上是写写这个客户端的挺火的,然后自己看了几天。那就准备说,哎,我也可以写一写公司呢,正好有公司呢,招两人我就过去了,过去以后呢,问说这个这个安卓你会吗?他说诶还是会一些的,比如说呢,我能够说出来具体生命周期是吧?嗯,然后呢,不同切换的时候,我也知道哪个方法掉,那人觉嗯还不错是吧?嗯,对吧,就这样啊,那你现在要找工作,你过去说你介绍一下你之前的工作经验,你说itd生命周期啊,特别熟。
09:19
直接就一个字。对,你就得自由了是吧,哎,就没戏了,现在这个水涨船高,要求就越来越高了啊。啊,那具体这些方法里边哪些能哪个方法里边能写什么这个哎,目前还是有点水平的啊,那这个frag的话呢,这个都很少考了,这个就更不会这样去给你考了,你这个方法你能记住,说实话也不容易是吧,11个呢啊,当然了,我们说这个记的时候呢,也比较有特点,就一一个对一个的。啊,这样的it,我们说其实也是这样的啊。哎,就是哎,这个是单独单蹦的啊。On,这个这个。
10:02
哎,所以11个里边呢,就它是单蹦出来的。这11个里边的话呢,我们比较关心的呢,当然就是这两个方法了。哎,那这里边儿再分一分,那当然就是这个方法了。啊,每一个反说都对应着一个页面的一个显示效果了啊,所以它就一定会有个view啊,就是这个方法给我们返回的一个view。一般的我们说生命周期方法都是wide的啊。但是这个不是。他不是我的。好,然后下边这些测试用例的话呢,哎,这个我们当时讲课的时候呢,都说过了啊,哎,我在操作这个事情的时候,哎,它是从什么状态到什么状态的,对应的哪些方法调用了啊,这个你忘了话呢,回去再看一眼啊行,那这个我们就过了哈,啊主要呢,你就把这两个方法记住就行。它在这个后边调用,哎,当然这个呢,得到一个view以后,哎后续呢,你想做一些什么操作,可以在这里边去写。
11:00
好,那比较重要的呢,就是我们平时用的,哎,关于静态加载和动态加载的问题。那我们去选择的话呢,什么时候你会选择静态,什么时候会选择动态呢。嗯,对,写死的时候就是呃,或者再明确一点,就是我这个在呃整个MT这个布局里边,它呢,一开始就出现了,而且不动是吧,不会说这会儿受一会又害了,或者一会呢又被给remove掉了啊,你要这种情况呢,是不是肯定得动弹了。对吧,哎,你像我们上面的应用应用实例一点啊,我这呢造一个具体的一个list view,这list view呢,我就放到这个fragment里了,然后呢,我左边点这个具体的每一个item的时候呢,呃,右边这个呃,显示的具体一个效果不断的在变。那你右边这个呢,是不同的fragment不停的在变啊,你可以这样来理解哈,而左边的这几项根本就没有动过啊,所以这个如果有一个fragment的话呢。
12:00
就是比较适合用这种静态的,就造好以后它也不会说让你去remove,也不会说是啊,当然氦的还好啊,氦的话呢,它其实至少为一除哈,嗯,害的还好,但是一般呢也也不害的了,就是它就摆到这儿,嗯,然后另外那个呢F呢,来回一会儿删啊,一会儿又消失了,一会又瘦啊哎一会又添加呀,哎是可以用动态的。哎,就像我们这个应用里边呢,下有这样几项,那点击的时候呢,它才有,那上面这个呢,肯定是用动态更合适一些。啊,动态静态,呃,如何去做这个呢?静态你就是功能清单,嗯。不是功能文件布局文件啊,写这个frame的标签就行啊,动态的话呢,我们就一直在做的啊,需要你有对象,然后呢,使用这个transction呢,去做一些爱的操作。啊,做这样的一些操作,哎,这里边你要再加,就是还得收啊,这个也应该再加上啊。
13:02
嗯,操作。哎,收操作就我们真正写这个的话呢,你要么你就是想删掉它,删掉以后呢,你最好那就别显示了,你要是还一会删了一会有显示,那就用这一对方法去做。嗯。行,这就是我们说的这个呃,Fragment啊,然后刚才这个江杰说的时候呢,又提到了,说这个fragment呢,呃,如果是在这个呃,View peterer当中去用的话,哎,上午我们讲的哈,这里边呢,需要用到这个doctor。但那个待你那会讲是不是说的不对啊。啊,你那个说的叫叫什么呀。啊,他应该一个叫,就对应的这个啊,一个呢叫fragment state。啊,Page adapter。嗯。啊,当然这个真正开发的时候呢,到有的好多东西呢,也也不会说记得特别特别准确,因为可能我们一写提示就有了哈,但是你要是说的话呢,那你最好还是得哎说出来啊哎这两个哎这是我们说到的哈,哎具体这个区别呢,我们上午也讲到了,这个呢,适合你加载这个F的较多的时候是吧,哎这个呢,就是比较少的时候啊,哎就用这个。
14:25
行,那这个内容的话呢,就是这样一些啊。
我来说两句