四种状态:正在加载中,加载成功,网络错误,内容为空
所以写一个可以复用的类很重要,避免重复写代码
BaseApplication中
private static Handler sHandler = null;
@Override
public void onCreate() {
super.onCreate();
sHandler = new Handler();
}
public static Handler getHandler(){
return sHandler;
}
一个UILoader封装类
public abstract class UILoader extends FrameLayout {
private View loadingView, successView, netErrorView, emptyView;
private onRetryClickListener mOnRetryClickListener = null;
public enum UIStatus {
LOADING, SUCCESS, NETWORK_ERROR, EMPTY, NONE;
}
public UIStatus mCurrentStatus = UIStatus.NONE;
//保证了只有唯一的入口
public UILoader(@NonNull Context context) {
this(context, null);
}
public UILoader(@NonNull Context context, @Nullable AttributeSet attrs) {
this(context, attrs, 0);
}
public UILoader(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
//初始化UI
private void init() {
SwitchUIByCurrentStatus();
}
public void updateStatus(UIStatus uiStatus){
mCurrentStatus = uiStatus;