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