Fragment+Viewpager防止预加载

来源:互联网 发布:linux 漏洞扫描软件 编辑:程序博客网 时间:2024/05/19 02:01

--------前言------> 当我们使用ViewPager+Fragment的时候肯定知道Fragment会预先加载,如果有大量数据的话,会造成Fragment卡顿现象,所以这里说明一种Fragment缓加载的方式,相当简单,只要继承以下父类Fragment,再在对应方法中加载数据即可实现Fragment缓加载了。

  父类代码:import android.support.v4.app.Fragment;/** * @Description:[功能描述] * @Author:kenneth */public abstract class ShouYeBase extends Fragment {    protected boolean isVisible;    @Override    public void setUserVisibleHint(boolean isVisibleToUser) {        super.setUserVisibleHint(isVisibleToUser);        if (getUserVisibleHint()) {            isVisible = true;            onVisible();        } else {            isVisible = false;            onInvisible();        }    }    /**     * 可见     */    protected void onVisible() {        lazyLoad();    }    /**     * 不可见     */    protected void onInvisible() {    }    /**     * 延迟加载     * 子类必须重写此方法     */    protected abstract void lazyLoad();}
    子类代码:
public class ZuiXinFragment extends ShouYeBase {    private boolean isPrepared = false;    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {        View view = inflater.inflate(R.layout.zuixin_view, null, false);        isPrepared = true;        return view;    }       @Override    protected void lazyLoad() {        if (!isPrepared || !isVisible) {            return;        }    }}

1 0
原创粉丝点击