1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 切换不同的数据状态布局 包含加载中 空数据和出错状态 可自定义状态布局

切换不同的数据状态布局 包含加载中 空数据和出错状态 可自定义状态布局

时间:2022-11-19 19:51:53

相关推荐

切换不同的数据状态布局 包含加载中 空数据和出错状态 可自定义状态布局

代码地址如下:

/demo/12318.html

StatusLayoutManager

切换不同的数据状态布局,包含加载中、空数据和出错状态。

github地址:/Bakumon/StatusLayoutManager

特征

不会增加布局层数提供一套可配置的默认状态布局布局懒加载重试按钮统一回调支持自定义状态布局

预览

下载 demo 体验

下载

在项目的build.gradle中添加:

allprojects {repositories {...maven { url 'https://jitpack.io' }}}

添加依赖

dependencies {compile 'com.github.Bakumon:StatusLayoutManager:1.0.1'}

使用

快速使用

创建StatusLayoutManager对象:

statusLayoutManager = new StatusLayoutManager.Builder(recyclerView)// 设置重试事件监听器.setOnStatusChildClickListener(new DefaultOnStatusChildClickListener() {@Overridepublic void onEmptyChildClick(View view) {}@Overridepublic void onErrorChildClick(View view) {}}).build();

在合适的时机显示对应的状态布局:

// 加载中statusLayoutManager.showLoadingLayout();// 空数据statusLayoutManager.showEmptyLayout();// 加载失败statusLayoutManager.showErrorLayout();// 加载成功,显示原布局statusLayoutManager.showSuccessLayout();

以上可以满足大多数场景。

配置默认布局

以下 API 提供修改默认布局的方法,具体说明见注释。

statusLayoutManager = new StatusLayoutManager.Builder(recyclerView)// 设置默认加载中布局的提示文本.setDefaultLoadingText("l拼命加载中...")// 设置默认空数据布局的提示文本.setDefaultEmptyText("空白了,哈哈哈哈")// 设置默认空数据布局的图片.setDefaultEmptyImg(R.mipmap.ic_launcher)// 设置默认空数据布局重试按钮的文本.setDefaultEmptyRetryText("retry")// 设置默认空数据布局重试按钮的文本颜色.setDefaultEmptyRetryTextColor(getResources().getColor(R.color.colorAccent))// 设置默认空数据布局重试按钮是否显示.setDefaultEmptyRetryVisible(false)// 设置默认出错布局的提示文本.setDefaultErrorText(R.string.app_name)// 设置默认出错布局的图片.setDefaultErrorImg(R.mipmap.ic_launcher)// 设置默认出错布局重试按钮的文本.setDefaultErrorRetryText("重试一波")// 设置默认出错布局重试按钮的文本颜色.setDefaultErrorRetryTextColor(getResources().getColor(R.color.colorPrimaryDark))// 设置默认出错布局重试按钮是否显示.setDefaultErrorRetryVisible(true)// 设置布局背景,包括加载中、空数据和出错布局.setDefaultLayoutsBackgroundColor(Color.WHITE).build();

自定义默认布局

statusLayoutManager = new StatusLayoutManager.Builder(recyclerView)// 设置加载中布局.setLoadingLayout(inflate(R.layout.layout_loading))// 设置空数据布局.setEmptyLayout(inflate(R.layout.layout_empty))// 设置出错布局.setErrorLayout(inflate(R.layout.layout_error))// 设置加载中布局.setLoadingLayout(R.layout.layout_loading)// 设置空数据布局.setEmptyLayout(R.layout.layout_empty)// 设置出错布局.setErrorLayout(R.layout.layout_error)// 设置空数据布局重试按钮 ID.setEmptyRetryID(R.id.tv_empty)// 设置出错布局重试按钮 ID.setErrorRetryID(R.id.tv_error).build();

显示自定义状态布局

statusLayoutManager#showCustomLayout()有几个重载方法,下面以参数最多的为例介绍:

/*** 显示自定义状态布局** @param customLayoutID 自定义布局 ID* @param clickViewID 重试按钮 ID* @return 自定义状态布局*/statusLayoutManager.showCustomLayout(R.layout.layout_custome, R.id.tv_customer, R.id.tv_customer1);

其中clickViewID参数,表示想要添加点击事件的 View 的 id。

点击监听

statusLayoutManager = new StatusLayoutManager.Builder(recyclerView)// 设置重试事件监听器.setOnStatusLayoutClickListener(new OnStatusLayoutClickListener() {@Overridepublic void onEmptyChildClick(View view) {}@Overridepublic void onErrorChildClick(View view) {}@Overridepublic void onCustomerChildClick(View view) {}}}).build();

也可以使用OnStatusLayoutClickListener默认的实现类,像下面这样:

statusLayoutManager = new StatusLayoutManager.Builder(recyclerView)// 设置重试事件监听器.setOnStatusChildClickListener(new DefaultOnStatusChildClickListener() {@Overridepublic void onEmptyChildClick(View view) {}@Overridepublic void onErrorChildClick(View view) {}}).build();

项目结构图

切换不同的数据状态布局,包含加载中、空数据和出错状态,可自定义状态布局

代码地址如下:

/demo/12318.html

注:本文著作权归作者,由demo大师发表,拒绝转载,转载需要作者授权

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。