您的位置:首页 > 理论基础 > 计算机网络

viewpager缓存页面,避免页面重新加载!如果每个页面中,有访问网络等耗时的操作,则用户体验会非常糟糕

2016-08-02 16:11 666 查看
viewpager缓存页面,避免页面重新加载!如果每个页面中,有访问网络等耗时的操作,则用户体验会非常糟糕

解决办法:

1、设置viewpager可以缓存的页面数量

ViewPager.setOffscreenPageLimit(3),设置缓存的个数为2,这样第一次加载的时候会全部加载,后面点击不会重新加载了,不过缺点是吃内存,不推荐.

2、在FragmentPagerAdapter中,要销毁fragment的时候,隐藏它。在显示的时候,在从隐藏中恢复到显示的状态。推荐、、、、

package cn.jianguo.qinzi.adapter;

import android.support.v4.app.Fragment;

import android.support.v4.app.FragmentManager;

import android.support.v4.app.FragmentPagerAdapter;

import android.view.ViewGroup;

import java.util.ArrayList;

/**

* Created by 张玉水 on 2016/8/2.

*/

public class myViewpagerAdapter extends FragmentPagerAdapter {

private FragmentManager fm;

private ArrayList fragments;

public myViewpagerAdapter(FragmentManager fm, ArrayList fragments) {

super(fm);

this.fm = fm;

this.fragments = fragments;

}

@Override

public Fragment getItem(int position) {

Fragment fragment;

fragment = fragments.get(position);

return fragment;

}

@Override

public int getCount() {

return fragments.size();

}

@Override

public int getItemPosition(Object object) {

return POSITION_NONE;

}

@Override

public Fragment instantiateItem(ViewGroup container, int position) {

Fragment fragment = (Fragment) super.instantiateItem(container, position);

fm.beginTransaction().show(fragment).commit();

return fragment;

}

@Override

public void destroyItem(ViewGroup container, int position, Object object) {

// super.destroyItem(container, position, object);

fm.beginTransaction().hide(fragments.get(position)).commit();

}

}

重点的是重写方法instantiateItem() 和 destroyItem();

如下使用:

fragments.add(CommentFragment.getInstance(0,mJsonObject.toJSONString()));//好评

fragments.add(CommentFragment.getInstance(1,mJsonObject.toJSONString()));//中评

fragments.add(CommentFragment.getInstance(2,mJsonObject.toJSONString()));//差评

viewpager = (ViewPager) view.findViewById(R.id.viewpager);

adapter = new myViewpagerAdapter(fragmentManger, fragments);

viewpager.setAdapter(adapter);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐