如果viewpager中放置的多个fragment都是一样的ui效果,区别仅仅就是显示的数据内容不一样,如何复用碎片
如果viewpager中放置的多个fragment都是一样的ui效果,区别仅仅就是显示的数据内容不一样,觉得复用是最有效的一种方式,可是传过去的参数始终都是未识别的状态,...
如果viewpager中放置的多个fragment都是一样的ui效果,区别仅仅就是显示的数据内容不一样,觉得复用是最有效的一种方式,可是传过去的参数始终都是未识别的状态,有没有好的解决办法。不复用代码太冗余了
展开
1个回答
2019-02-28
展开全部
Viewpager是我们经常使用的一个控件,它的使用这里就不多说了,我在这里说一下其中的一个效果,就是我们经常会看到在一些新闻类的 App中,使用viewpager来做各个频道的切换,在切换的时候,我们会发现,这些频道里面的数据,是在此频道为当前页的时候才进行加载,而不是一开始就加载的(这里说明一点,就是viewpager有预加载的功能),同时,当我们切换回来的时候,此页面并没有重新加载,数据还是原来的,就是说当切换回来的时候,数据没有进行再次请求。
对于这个效果,我用了一个比较笨,也是我现在唯一能想到的方法,来处理,在这里,做一个记录,如果你有好的方法,希望留言,大家共同进步。
好了,下面我说一下我的方法:
我们在使用viewpager的时候,最后都要使用一个setAdapter来绑定它的adpter。对于viewpager来说,它的最基本的adapter是pageAdapter。但是还有两个分别是FragmentPagerAdapter与FragmentStatePagerAdapter这两个从名字上就能看出来,主要是用来处理viewpager中如果是多个fragment的情况。它俩的区别在于是否将生成的fragment全放到内存中去。FragmentPagerAdapter是将fragment放到内存中去,而FragmentStatePagerAdapter则只保留当前的fragment。这里我们采用的是继承FragmentStatePagerAdapter来处理,它只需要完成两上方法就OK了
对于这个效果,我用了一个比较笨,也是我现在唯一能想到的方法,来处理,在这里,做一个记录,如果你有好的方法,希望留言,大家共同进步。
好了,下面我说一下我的方法:
我们在使用viewpager的时候,最后都要使用一个setAdapter来绑定它的adpter。对于viewpager来说,它的最基本的adapter是pageAdapter。但是还有两个分别是FragmentPagerAdapter与FragmentStatePagerAdapter这两个从名字上就能看出来,主要是用来处理viewpager中如果是多个fragment的情况。它俩的区别在于是否将生成的fragment全放到内存中去。FragmentPagerAdapter是将fragment放到内存中去,而FragmentStatePagerAdapter则只保留当前的fragment。这里我们采用的是继承FragmentStatePagerAdapter来处理,它只需要完成两上方法就OK了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询