00:00
好,那接下来的话呢,我们就开始来做这样两个事情了。啊。这里边呢,又涉及到了一个fragment了,Fragment的话呢,我们就说你要下载行有两种方式。啊,动态加载静态加载这块,我们是不是仍然是使用动态啊。啊,你这三个显示谁是不是不确定啊啊,使用动态的啊,动态加载那就用对象呗,啊那我们不妨呢,在这我就就专门造个方法吧,叫in。嗯,Fragments这样个方法。哎,这个方法里边al报一下,嗯,方法的话呢,我们去实例化这三个具体的fragment,然后同时呢,把它们存放在一个集合当中。哎,为什么要遭集合呢?我这个view回头是不是要set adapter adapter里边我们通常数据是不是都放在几何里了,哎,所以我这要用啊,所以现在我就造好,哎,里边放的是啊,Fragment。我这就叫做fragment list。啊,这样提供好啊,那在这里边呢,我们就一个一个的给大家去拗一下。
01:04
嗯,也就new一下product list。啊,扭一下。嗯,是啊。Product。然后呢,我们通过这个fragment list。给它加进去。嗯。好,这呢就是添加到哎即可中。行,第二话呢,我们就把这几个对象呢,都给它去造好啊,放在这个集合里边了,然后这个第一步呢,我们就做好了,相当于是做了一个动态加载。呃,加载完以后的话呢,我们这里边就需要使用这个view配,哎,刚才呢,也已经绑定初始化了啊,就是这个结构CTRLC。
02:05
准备点啊,Set a adaptor哎,需要一个adaptor啊,而且我们称作叫painter adapt。啊,那我这就先。这样写一下吧,这是需要个单,这个单的话呢,是不是仍然需要我们自己去定义一个它的配单的子啊提供。啊,提供page adapt的一个实现。哎,那按正常来讲,我们应该是,哎,声明一个啊单直接呢,让他去继承于。是配这个,但是啊,应该是这样的啊,包括我们首页这个home fragment里边。哎,首先我们这个home Fla在这里边呢,呃,上面的这样的几个图片,我们都是集中于配置,大家看看,但是这块呢,我们这个view配置呢,稍微特别一点,我们加载的是不是几个fragment了。
03:07
这要注意啊,我们首页呢,不用配加载是图片,那你继承于这个就继承于这个了,那我们现在加那个加载的是几个fragment,所以我们一般这时候继承的话呢,就不直接继承以配在这了。啊不直接集成于它了,你看我这样,我先哎,先把这个方法我先放这啊,然后在这呢,我们看一下这个F4。啊,L4相当于是它的一个继承结构,配加上呢。这个是我们刚才自己写的,这个是是banner里的,这个我们就不用它了哈,是不是还有两个。哎,一个叫fragment state配doctor,一个呢叫fragment配doctor,哎,如果你。没有回当中。啊,上面看不着了啊,如果你没有当中加载的是fragment啊,那我们这呢就可以去继承于这个或者是这个,而不直接继承它了,就这呢就更具体了啊哎,所以提供它这个实践,我们这里边说明一下。
04:08
说如果没有配中加载的是,嗯。Fragment。走。提供的这个adaptor。啊,可以继承于啊,具体的这两个啊,一个呢,叫fragment state page或者。Fragment。行这两个,那这两个的话呢,它应该有一点区别。哎,这两个有点区别啊,那我到底是基等于他呀,还是集中于他呀。
05:01
这个前面我们是不是没讲过呀。啊,没讲过啊,那那这两个有什么区别,我们发现一个长一个短啊。嗯,那你喜欢长的还是喜欢短的呀?看情境了是吧,嗯,那这里边呢,我们得说一下他俩的这个区别,这个fragment state page adapt,它适合于什么样的这个view配置呢?就是如果你这个页面当中啊,或者准确的说是那个view配ER里边啊。如果这个view配呢,我们这样一划是一个fragment,再一划就是一个,如果这个fragment呀,特别多。哎,特别多,就可能有几十个哈,哎划一套划一套好几套,哎,那这个情况下呢,我们适合于使用这个长的。那如果说我们就像当年那个问题,咱们就只有三项了。那三项的话呢,那我就只有三个fragment,如果项数比较少,我适合于用短的这个。
06:01
那长的跟短的,你觉得它通过什么去区分,或者说为什么还区分一下呢?嗯嗯还嗯,这个可能很很难直接就联想到什么呢,我们讲这个图片的三级缓存。三级缓存的时候呢,呃,当时我们讲课的时候说一级缓存是集合是吧,集合的时候呢,咱们讲的时候呢,是不是自己造了个麦呀。呃,其实真正开发的时候呢,我们没有自己去造啊,呃,系统呢,就是包括你用一些框架,你发现它里边用的是这个l ru cash。那lr cash其实底层呢,它本身本质上就是一个map啊,那用这个去存,那它呢,封装好的这个l cash有个什么特点呢?就是你想想,如果我们这个页面当中,你有特别多的这个图片,整个呢是离子为有不停的往上滑滑画,如果这是你自己造的一个麦啊。那你这个新出现一个没有之前加载过,那你呢,就会把它放在内存里,一个一个的加内存,是不是一会就超了呀,因为你在滑的过程当中,划着划着是不是一会就抱一个框说就挂掉了。
07:08
呃,因为内存超了,那他用这个线程那个呢,好处就是,呃,我划的过程当中,如果你想我都划的离得很远啊,那些是不是你有可能也不会再翻回来啊,我就从内存中给你清掉了。啊,就是他判断一下你最近最少使用是是什么,就这里边有个算法,就是最近最少使用算法。啊,如果你最近呢,呃,最少使用的是它,我是不是就把它从内存里边干掉,就是避免你出现内存的一个溢出吧。能理解不?啊,这是他的这样个想法啊,在这呢,其实也是一样,我们这呢是一个view page里边放的是fragment,如果fragment墙特别多啊,我这呢一层一层这样的去去划过去,那你这些fragment如果都在内存中放着,显然是不是也会出现溢出的情况。所以呢,如果你的F的比较多的时候,哎,我使用上面这种加载方式,他呢也会相当于按照这个最少最近最少使用算法,哎,如果你划过去离得比较远了,我就把这些从类存中清正。
08:10
啊,而上面这个比较少,比如说就三项,那这个呢时候,它就不会出现这个清除的情况,那我们这三项对应的这个frag,我就当你显示过以后,我就都给你加到内存里边,当你来回切换的时候呢,就速度很快。啊,就不用再重新去加载了啊,这是两个区别啊,说如果啊,VIP中加载的这个fragment过多。那么会,嗯,根据我们来讲啊,最少啊,最近啊,最少使用这个算法。啊,实现这个fragment在内存实现内存中。嗯,这个fragment的一个清理啊。
09:02
相当于避免了你出现一个溢出。那这这个地图。啊,而这个比较短的话呢,说或者这个适用于啊。嗯,这个呢,就是适用于。哎,我们这个view中加载的这个fragment不多的时候。嗯,那这个呢,我们说呃,系统呢不会清理,哎,已经加载的这个fragment。嗯,啊,就这个区别啊,就说清楚了,这个记忆的话呢,也很简单啊,长的呢那就是多的,短的呢就是少的啊,那多的呢,它就会自动清理,那我们这个问题当中是不是显然是属于少的呀,哎,所以我们就继承给它就可以了啊这呢,我们把这个呢就直接拿掉,然后呢再重新呢去显示这个方法啊。
10:02
就这两个,嗯,第一个的话呢,就是你具体的这一项啊,具体这一项我们就直接呢,通过这个fragment。List点嗯,Get指定的position啊,这个呢,就是判断一下。然后再分成点,嗯。是。行。然后呢,构造器是吧,提供构造器啊,这个呢,我们就写好了,写好以后的话呢,再回过来。啊。对,你我一个。这个结构。哎,因为这里边儿呢,是不是需要一个。第一个参数啊,Fg manager。
11:00
Frank manager,我现在就在fragment里面。这是不是就涉及到的这个方法了,它直接就有一个叫get。Of the manager。哎,这个中午的时候呢,把这个fragment那个常见方法啊,该三组了啊。好,这呢,我们一下这就应该能够显示了,嗯,显示的话呢,这时候还有一个问题啊,我们这是不是还有一个这个嗯,Tab page indicator。哎,这个怎么去用呢?哎,也是跟我们前面用那个circle配置indicator一样啊,哎,就是使用啊,或者说这个将我们的tab。阴蒂。Filterr与我们的这个real关联。哎,直接拿着它点set一下view page,把我们的view page往里边一扔就OK。好看效果。
12:08
好,进来这呢,我们关心的不是他哈,更关心的是这个投资页现在点开。滑动。有。但是好像。二幺什么呀?上面插着这三个。下马。哎,下边这你看我下边这个配置有问题吗。是不是没问题啊,哎,上面这个问题,哎,一会我们上过来呢,把这个问题说一下。
我来说两句