ViewPager加fragment如何保存fragment里面的状态
来源:互联网 发布:工艺流程软件软件 编辑:程序博客网 时间:2024/04/28 20:03
其实思路 很简单 就是在fragment的oncreateview方法里判断 这个view是不是NULL,如果是null,则是第一次加载,那么初始化数据,否则复用这个view,只刷新需要刷新的数据,有一点注意的是,在复用这个view之前,这个view已经有了一个父布局,所以必须把它去掉,然后再添加。
代码比较简单,就不用demo了,直接上源代码:
public class F2 extends Fragment { private View view; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub if (view == null) { view = inflater.inflate(R.layout.f, container, false); initData(); } if (view.getParent() != null) { ((ViewGroup) view.getParent()).removeView(view); refeshData(); } return view; } // 初次加载数据 private void initData() { } // 刷新数据 private void refeshData() { }}
然后是mainactivity:
public class MainActivity extends FragmentActivity { private ViewPager vp; private List<Fragment> list_f = new ArrayList<Fragment>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); vp = (ViewPager) findViewById(R.id.vp); list_f.add(new F1()); list_f.add(new F2()); list_f.add(new F3()); vp.setAdapter(new Myadpter(getSupportFragmentManager())); } class Myadpter extends FragmentPagerAdapter{ public Myadpter(FragmentManager fm) { super(fm); // TODO Auto-generated constructor stub } @Override public Fragment getItem(int arg0) { // TODO Auto-generated method stub return list_f.get(arg0); } @Override public int getCount() { // TODO Auto-generated method stub return list_f.size(); } }
其实我建议没必要用viewpager加fragment,完全可以用viewpager+普通的view来代替,就像这个例子里的,三个fragment,当滑动到第三个的时候,第一个肯定会被销毁,也就是说viewpager总是会加载左中右三个,无论如何,fragment都被移除然后再添加,而不是像普通的activity一样可以用hide和show来控制,所以这样效率实际上是比普通的View的直接显示和隐藏要低的多的。
0 0
- ViewPager加fragment如何保存fragment里面的状态
- Android ViewPager中加fragment并保存fragment的状态
- viewpager fragment中fragment的状态保存
- Fragment状态的保存
- Android, 如何保存Fragment的状态
- 关于ViewPager+fragment的使用,viewpager切换时fragment状态保存的问题。
- 解决ViewPager+Fragment时状态保存的问题
- 关于Viewpager中的Fragment 滑动时保存状态的问题
- android fragment+ FragmentTabHost+viewpager 切换状态不保存的问题
- Viewpager中的Fragment 滑动时保存状态的问题
- fragment里面的startActivityForResult(保存状态不成功的问题)
- android解决fragment+viewpager状态保存问题
- viewPager+多个Fragment状态保存
- ViewPager fragment 保存状态,内部使用listview 并进行了操作,保存操作后的状态
- Fragment里面嵌套ViewPager
- viewpager里面的fragment之间的跳转
- 获取当前ViewPager里面的Fragment对象
- Fragment中的viewpager里面填充子fragment的问题
- 字体,截图,获取图库照片
- iOS - OC和网页JS的交互
- nagios插件,通过nrpe远程调用和本地执行结果不一致
- 上传文件到github
- MySQL快速学习入门
- ViewPager加fragment如何保存fragment里面的状态
- d3.js——update、enter、exit
- SQLZOO(SELECT within SELECT Tutorial)Writeup
- I00001 杨辉三角
- APP上架审核被拒(新增2016.04)
- 嵌套json解析
- 使用ABBYY FineReader 12的那些心得体会
- 【CodeForces 618B】Guess the Permutation(水题)
- SOLR安装简单配置