你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
首页
热门
推荐
精选
登录
|
注册
切换不同的数据状态布局,包含加载中、空数据和出错状态,可自定义状态布局
立即下载
用AI写一个
该例子支持:好用才打赏哦
现在下载学习
发布时间:2018-01-15
4人
|
浏览:3094次
|
收藏
|
分享
技术:view,layout
运行环境:sdk11+
概述
🐱 切换不同的数据状态布局,包含加载中、空数据和出错状态,可自定义状态布局。
详细
# StatusLayoutManager [![Release](https://jitpack.io/v/Bakumon/StatusLayoutManager.svg)](https://jitpack.io/#Bakumon/StatusLayoutManager) [![API](https://img.shields.io/badge/API-11%2B-brightgreen.svg?style=flat)](https://android-arsenal.com/api?level=11) 切换不同的数据状态布局,包含加载中、空数据和出错状态。 ## 特征 1. 不会增加布局层数 2. 提供一套可配置的默认状态布局 3. 布局懒加载 4. 重试按钮统一回调 5. 支持自定义状态布局 ## 预览 下载 [demo](https://github.com/Bakumon/StatusLayoutManager/raw/master/apk/app-release.apk) 体验 ![status_layout_manager.gif](https://github.com/Bakumon/StatusLayoutManager/raw/master/gif/status_layout_manager.gif) ## 下载 1. 在项目的 `build.gradle` 中添加: ``` allprojects { repositories { ... maven { url 'https://jitpack.io' } } } ``` 2. 添加依赖 ``` dependencies { implementation 'com.github.Bakumon:StatusLayoutManager:1.0.4' } ``` ## 使用 ### 快速使用 使用 `StatusLayoutManager#Builder` 创建 `StatusLayoutManager` 对象: ```java statusLayoutManager = new StatusLayoutManager.Builder(recyclerView) .build(); ``` 在合适的时机显示对应的状态布局: ```java // 加载中 statusLayoutManager.showLoadingLayout(); // 空数据 statusLayoutManager.showEmptyLayout(); // 加载失败 statusLayoutManager.showErrorLayout(); // 加载成功,显示原布局 statusLayoutManager.showSuccessLayout(); ``` 以上可以满足大多数场景。 ### 配置默认布局 以下 API 提供修改默认布局的方法,具体说明见注释。 ```java 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(); ``` ## 自定义默认布局 ```java 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()`有几个重载方法,下面以参数最多的为例介绍: ```java /** * 显示自定义状态布局 * * @param customLayoutID 自定义布局 ID * @param clickViewID 重试按钮 ID * @return 自定义状态布局 */ statusLayoutManager.showCustomLayout(R.layout.layout_custome, R.id.tv_customer, R.id.tv_customer1); ``` 其中 `clickViewID` 参数,表示想要添加点击事件的 View 的 id。 ## 点击监听 ```java statusLayoutManager = new StatusLayoutManager.Builder(recyclerView) // 设置重试事件监听器 .setOnStatusLayoutClickListener(new OnStatusLayoutClickListener() { @Override public void onEmptyChildClick(View view) { } @Override public void onErrorChildClick(View view) { } @Override public void onCustomerChildClick(View view) { } } }) .build(); ``` 也可以使用 `OnStatusLayoutClickListener` 默认的实现类,像下面这样: ```java statusLayoutManager = new StatusLayoutManager.Builder(recyclerView) // 设置重试事件监听器 .setOnStatusChildClickListener(new DefaultOnStatusChildClickListener() { @Override public void onEmptyChildClick(View view) { } @Override public void onErrorChildClick(View view) { } }) .build(); ```
本实例支付的费用只是购买源码的费用,如有疑问欢迎在文末留言交流,如需作者在线代码指导、定制等,在作者开启付费服务后,可以点击“购买服务”进行实时联系,请知悉,谢谢
感谢
1
手机上随时阅读、收藏该文章 ?请扫下方二维码
相似例子推荐
评论
作者
Bakumon
1
例子数量
4
帮助
1
感谢
评分详细
可运行:
4.5
分
代码质量:
4.5
分
文章描述详细:
4.5
分
代码注释:
4.5
分
综合:
4.5
分
作者例子
切换不同的数据状态布局,包含加载中、空数据和出错状态,可自定义状态布局