解决Fragment +Viewpager滑动页面重复加载的问题
2017-07-09 11:45
1036 查看
前言
之前在做一个Viewpager上面加载多个Fragment时总会实例化已经创建好的Fragmnet对象类似
其实仔细想一下,这样是很不合理的,首先你一直实例化对内存是一种浪费另外Viewpager具有预加载性当我们加载某一个Fragmnet时它就会把它的左边和右边都会加载(开头和结尾例外。)所以为了防止重复加载浪费资源,我们可以使用一个对象数组来加载fragment,当每次位置为空的时候我们就可以在该位置上面加载一个布局具体代码
在fragment里面当然你也可以用bundler来传值。
之前在做一个Viewpager上面加载多个Fragment时总会实例化已经创建好的Fragmnet对象类似
viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int position) { switch(position){ case 0: fragments=new Fragmnet01(); break; case 1: fragments=new Fragmnet02(); break; ..... } return fragments; } @Override public int getCount() { return listTabs.size(); } });
其实仔细想一下,这样是很不合理的,首先你一直实例化对内存是一种浪费另外Viewpager具有预加载性当我们加载某一个Fragmnet时它就会把它的左边和右边都会加载(开头和结尾例外。)所以为了防止重复加载浪费资源,我们可以使用一个对象数组来加载fragment,当每次位置为空的时候我们就可以在该位置上面加载一个布局具体代码
//定义一个对象数组并给定长度 fragments=new MyFragment[listTabs.size()]; viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int position) { //在这里判断如果Fragmnet[position]当前页面没有加载的话我们再次在上面加载 if(fragments[position]==null){ //这里只是写一个构造方法把值传到fragment里面 MyFragment my = MyFragment.getInstance(listTabs.get(position).getId()); fragments[position]=my; } return fragments[position]; } @Override public int getCount() { return listTabs.size(); } });
在fragment里面当然你也可以用bundler来传值。
public static MyFragment getInstance(int id){ MyFragment myFragment=new MyFragment(); Bundle bundle=new Bundle(); bundle.putInt("id",id); myFragment.setArguments(bundle); return myFragment; }
相关文章推荐
- Android开发中如何解决Fragment +Viewpager滑动页面重复加载的问题
- fragment加载webView与ViewPager所带来的滑动冲突问题解决方法
- Android 解决ViewPager+Fragment懒加载的问题
- Viewpager+Fragment重复滑动后出现view重叠问题
- viewpager+fragment联网加载数据无显示以及预加载问题解决
- Android中ViewPager+Fragment取消(禁止)预加载延迟加载(懒加载)问题解决方案
- 完美解决ViewPager+Fragment二次加载空白问题
- 切换fragment回来的时候如果有类似viewpager的控件,会自动的被隐藏了,自动滑动了最上方的问题解决
- ViewPager+Fragment滑动界面,并做延迟加载【终极解决】
- 解决ViewPager+fragment预加载问题(getItem()两次调用)
- viewPager 页面切换时 fragment重新加载问题
- android 布局 使用 viewPager 时,如何解决 和 子页面 长按滑动 冲突问题
- 【Android】解决RadioButton+FragmentPagerAdapter+Fragment切换页面数据加载的问题
- FragmentTabHost切换Fragment时避免重复加载UI,导致切换后重绘页面的问题解决
- android 解决fragment+viewpager+fragment滑动卡顿的问题
- BaseFragment 解决ViewPager预加载问题
- Fragment的懒加载(解决ViewPager中Fragment生命周期错乱的问题)
- ViewPager页面滑动Fragment销毁问题
- ViewPager页面滑动Fragment销毁问题
- 温补而知新——之(Fragment+ViewPager使用,frgment切换listview数据重复加载问题png)