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在路上,欢迎关注

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值