Android开发之ViewPager中复用Fragment

现象

最近公司项目中使用最常见的模式ViewPager中嵌套Fragment,之前在写框架的时候,发现ViewPager中的嵌套三个Fragment布局是一样的,只是数据源不一样,所以复用了Fragment。但是,今天在调试的时候的发现Volley请求数据的时候,第一个Fragment加载数据的时候出现问题了。

问题原因

Volley请求数据的时候,每次请求的时候会加Tag标记,发起请求的时候会根据Tag来取消请求队列中的请求。ViewPager中使用PagerAdapter的时候,加载的时候会预加载相邻Fragment,所以每次都有两次请求发起。因为框架中Tag没有改变,导致第二次求请求将会取消前一次请求,导致前一个界面数据加载异常。

解决问题

问题的原因找到了,解决办法就是在创建Fragment的时候,通过setArguments传入参数,然后对应Tag或者对应请求的操作以及数据相关的操作。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 168,590评论 25 707
  • 2017年05月30 最后的懒加载写的不好,推荐请叫我大苏同学写的Fragment懒加载博客,【Android】再...
    英勇青铜5阅读 13,201评论 56 189
  • Java中的String类可以被继承么? 答:不能,因为它是一个final类,同样的还有Integer,Float...
    gyymz1993阅读 3,686评论 2 104
  • 块级元素: 1.如果没有设置宽度,那么默认和父级元素一样宽。 2.如果设置了宽度,就按照设置来显示。 3.独占一行...
    Zacks_8407阅读 198评论 0 0