加载3种状态架构

本文介绍了Android开发中基类LoadintPager的设计,用于处理加载数据的三种状态:加载中、加载成功和加载失败。同时,也考虑到了数据为空的情况。文中提供了具体的界面截图,并给出了BaseFragment的使用方法,帮助开发者在activity或fragment中实现状态管理。
摘要由CSDN通过智能技术生成

基类LoadintPager(加载三种状态)

通常都知道,android中一个页面的加载,无非三种状态:

  • 加载中
  • 加载成功
  • 加载失败

当然,如果从网络获取数据,可能会出现数据为空的情况。这里也要考虑进去
具体看下截图

失败

加载成功,这里界面随意弄的textview

加载中

这里可以抽下共有的方法。

/**
 * 描述:LoadingPager 不会在xml中使用,所以只实现context参数的构造
 * 作者:Marc on 2016/7/7 09:27
 * 邮箱:aliali_ha@yeah.net
 */
public abstract class LoadingPager extends FrameLayout {

    /**
     * //页面显示分析
     * //Fragment共性-->页面共性-->视图的展示
     * /**
     * 任何应用其实就只有4种页面类型
     * ① 加载页面
     * ② 错误页面
     * ③ 空页面
     * ④ 成功页面
     * <p/>
     * ①②③三种页面一个应用基本是固定的
     * 每一个fragment/activity对应的页面④就不一样
     * 进入应用的时候显示①,②③④需要加载数据之后才知道显示哪个
     */

public static final int STATE_NONE = -1;// 默认状态
public static final int STATE_LODING = 0;//正在请求网络
public static final int STATE_EMPTY = 1;//空状态
public static final int STATE_ERROR = 2;//错误状态
public static final int STATE_SUCCESS = 3;// 成功状态

public int mCurState = STATE_NONE;//当前默认状态
private View mLoadingView;//加载中视图
private View mErrorView;//加载错误视图
private View mEmptyView;//空视图
private View mSuccessView;//加载成功视图


public LoadingPager(Context context) {
    super(context);
    initCommonView();
}

/**
 * 初始化常规视图
 *
 * @call LoadingPager初始化的时候
 * @des 这初始化的时候不创建successview是因为根据不同的情况,成功界面不一样
 */
private void initCommonView() {
    // ① 加载页面
    mLoadingView = View.inflate(UIUtils.getContext(), R.layout.pager_loading, null);
    this.addView(mLoadingView);
    // ② 错误页面
    mErrorView = View.inflate(UIUtils.getContext(), R.layout.pager_error, null);
    mErrorView.findViewById(R.id.error_btn_retry).setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            //点击按钮重新请求加载数据
            loadData();
        }
    });
    this.addView(mErrorView);
    // ③ 空页面
    mEmptyView = View.inflate(
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值