自动页面状态管理
日常开发 Activity 的页面状态有:有网、无网络、空页面、loading加载页面等各种页面。
使用 LiveData 的监听集成在 BaseActivity 中,根据 BaseResult 返回的 code 来自动管理页面显示状态。
switch (httpResult.getErrorCode()) {
case BaseResult.SUCCESS_CODE:
if (httpResult.getData() != null) {
resultCode = SuccessCallback.class;
} else {
resultCode = EmptyCallback.class;
}
break;
default:
resultCode = ErrorCallback.class;
}
如果想手动改变页面状态,只需在 ViewModel 中非常简单的设置,例如:
无网络时:
postPageState(new BaseResult(-1));
数据为空时:
public void clickNoData() {
BaseResult baseResult = new BaseResult<>();
baseResult.setErrorCode(0);
baseResult.setData(null);
postPageState(baseResult);
}