Fragment延迟加载

Posted study_zhxu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Fragment延迟加载相关的知识,希望对你有一定的参考价值。

/**
 * Created by xz on 2017/4/10.
 */
public abstract class BaseFragment extends Fragment 

    /** 是否第一次显示 */
    private boolean isFirstVisible = true ;
    /** 是否第一次不显示 */
    private boolean isFirstInVisible = true ;
    /** 是否初始化 */
    private boolean isPrepared = false ;


    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
    

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) 
        super.onActivityCreated(savedInstanceState);
        initPrepare();
    

    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) 
        super.setUserVisibleHint(isVisibleToUser);
        if(isVisibleToUser)//fragment可见
            if(isFirstVisible) //第一次可见
                isFirstVisible = false ;
                initPrepare();
            else  //fragment可见  但不是第一次可见
                onVisible();
            
        else  //fragment不见
            if(isFirstInVisible)  //第一次不可见
                isFirstInVisible = false ;
                onFirstInVisible();
            else  //fragment不可见 但不是第一次不可见
                onInVisible();
            
        
    

    /** 初始化 */
    private void initPrepare() 
        if(isPrepared)
            onFirstVisible();
        else 
            isPrepared = true ;
        
    

    /**
     * 第一次fragment可见
     */
    public abstract void onFirstVisible() ;

    /**
     * fragment可见(切换回来或onResume)
     */
    public abstract void onVisible() ;

    /**
     * 第一次fragment不可见
     */
    public abstract void onFirstInVisible() ;

    /**
     * fragment不可见(切换不可见或onPause)
     */
    public abstract void onInVisible() ;

QQ交流群

微信公众号:android在路上,欢迎关注

以上是关于Fragment延迟加载的主要内容,如果未能解决你的问题,请参考以下文章

ViewPager+Fragment取消预加载(延迟加载)

Fragment延迟加载

Fragment延迟加载

Fragment的懒加载

封装篇——Fragment懒加载

重新加载 Fragment 时多次调用 Fragment onCreate