Fragment中的viewpager里面填充子fragment的问题
2015-11-30 16:14
405 查看
最近遇到一个问题,在fragment中有一个spinner,切换他的时候,viewpager里面的子fragment也要加载新的数据,发现设置的bundle与在里面getargument获得的bundle不一致,get到的都是第一次的bundle,最终解决问题是需要重写FragmentPagerAdapter里面的destroyItem方法,完整代码如下:
package cn.com.eado.remotemonitor.adaper; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.app.FragmentTransaction; import android.view.View; import android.view.ViewGroup; import java.util.ArrayList; import cn.com.eado.remotemonitor.Utils.T; /** * viewpager每一页均为fragment的adapter适配器; * Created by lcy on 2015/10/28. */ public class MyFragmentPagerAdapter extends FragmentPagerAdapter { ArrayList<Fragment> listFragments; public MyFragmentPagerAdapter(FragmentManager fm, ArrayList<Fragment> al) { super(fm); listFragments = al; } public MyFragmentPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return listFragments.get(position); } @Override public int getCount() { return listFragments.size(); } //这个注意要重写; @Override public void destroyItem(ViewGroup container, int position, Object object) { super.destroyItem(container, position, object); if (position <= getCount()) { FragmentManager manager = ((Fragment) object).getFragmentManager(); FragmentTransaction trans = manager.beginTransaction(); trans.remove((Fragment) object); trans.commit(); } } }
listFragments = new ArrayList<>(); energyFragment = EnergyFragment.newInstance(currentPID); monthFragment = MonthFragment.newInstance(currentPID); peakFragment =PeakFragment.newInstance(currentPID); listFragments.add(energyFragment); listFragments.add(monthFragment); listFragments.add(peakFragment); adapter=new MyFragmentPagerAdapter(fm, listFragments); viewPager.setAdapter(adapter);
相关文章推荐
- AngularJS学习笔记之directive——scope选项与绑定策略
- 探索UIApplication
- 【Leet Code】55. Jump Game---Medium
- [转化率预估-1]引言
- C++primer plus第六版课后编程练习答案10.8
- 局域网搭建git服务器
- 第十周项目5 求二叉树叶子节点的个数
- 一颗即将成为小太阳的新星的叙述(菜鸟的初体验)
- 第十四周 项目一(1) 验证算法
- DrawerLayout背景设置的问题,去除阴影
- 规范自己,逐渐蜕变
- iOS textView的使用总结
- OC 实例变量的可见度
- 使用 IBM 中间件实现 SaaS 解决方案,第 4 部分: 单一实例多租户应用程序中资源共享的设计模式
- 解读x86、ARM和MIPS三种主流芯片架构
- java、js 对于四舍五入、向上取整、向下取整
- linux中pipe和dup2详解
- iOS textView的使用总结
- 谈谈跨域请求数据的几种常用的方法
- 2.3物理层下面的传输媒体