美文网首页api 架构
FragmentStatePagerAdapter和Fragme

FragmentStatePagerAdapter和Fragme

作者: 笑对浮华 | 来源:发表于2019-12-02 17:53 被阅读0次

    二者的区别:

    1、当viewpager的adapter继承自FragmentPagerAdapter时,滑动切换fragment,离开视线的fragment没有被销毁掉,依然保存在内存中,当回到之前的fragment会复用之前的。所以一般用于fragment不多的情况。
    2、当viewpager的adapter继承自FragmentStatePagerAdapter时,在滑动过程中,离开视线的fragment会被销毁,当回到之前的fragment时会在此创建。所以一般用于fragment较多的情况,不会因为内存占用过大导致用户体验不好。

    写这篇文章主要时记录一下我在项目中遇到的问题:
    由于之前也看过一些网上的文章,对FragmentStatePagerAdapter和FragmentPagerAdapter有个大致的了解,fragment的多少也没有一个准确的定义,所以我在项目中adapter继承了FragmentStatePagerAdapter,最后在测试阶段就发现了问题,我的view pager中有3-6个fragment不等,当我滑动到最后一个fragment然后再回到前面的fragment时就是出现刷新数据不求网络的bug,ui上表现为一直刷新的状态,日志显示并没有进行网络请求,但通过断点debug,代码又确确实实运行了的,一时百思不得其解,在网上各种搜索也无果,最后脑子里突然闪过一个想法,会不会是因为FragmentStatePagerAdapter的原因,就去修改了继承的类,换成FragmentPagerAdapter之后再运行,之前的问题就不复存在了。
    原因我猜测估计就是跟上面介绍的二者却别有关,但具体原因还是不明确,希望也碰到了此类问题的道友留言交流,如果知道其中缘由的大佬能留言为之解惑就最好不过了。

    相关文章

      网友评论

        本文标题:FragmentStatePagerAdapter和Fragme

        本文链接:https://www.haomeiwen.com/subject/ihufgctx.html