笔记28 | 学习一个简单好用的下拉刷新、上拉加载控件
来源:互联网 发布:专注力训练软件 编辑:程序博客网 时间:2024/05/14 07:55
地址
http://blog.csdn.net/xiangyong_1521/article/details/78431139
目录
前言
基本用法
API拓展
显示细节补充和实现
附
前言
一个支持网络错误重试、无数据页(可自定义)、无网络界面(可自定义)的上拉加载更多,下拉刷新控件。
基本用法
1. 添加依赖库
compile 'com.zt.maven.widget:refreshview:1.0.0'
2. 初始化控件
动态加载刷新的空间,listview,xml...
3. 调用
refreshView.setOnLoadListener(new CustomRefreshView.OnLoadListener() {
@Override
public void onRefresh() {
//下拉刷新,添加你刷新后的逻辑
//加载完成时,隐藏控件下拉刷新的状态
refreshView.complete();
}
@Override
public void onLoadMore() {
//上拉加载更多,添加你加载数据的逻辑
//加载完成时,隐藏控件上拉加载的状态
refreshView.complete();
}
});
API拓展
1.自动刷新
在上方法3后加: refreshView.setRefreshing(true);
2.“无数据界面”添加
如果首次刷新无数据,则需要显示无数据的界面,可以在你加载完成时,根据后端接口返回的数据(一定是请求第一页且返回无数据的情况下)添加相应的界面(上图gif中的“暂无数据”界面即控件中默认的”码1“,自定义的话只需把你的无数据界面写好,api调用时当作参数传递即可”码2“),并且依旧可以下拉刷新。
码1:refreshView.setEmptyView("暂无数据");
码2:refreshView.setCreateView(customView);
3.”无网络或加载失败界面“添加
如果项目中需要在无网络或者加载失败的情况下(根据接口数据返回)添加相应的ui给用户一个友好的交互,那么你可以直接调用,当然也可以写自己风格的ui
3.1. 使用引入控件中的默认加载失败(无网络)界面-效果如上图gif的重试界面
refreshView.setErrorView();
3.2. 使用自己写的加载失败(无网络)界面,这里的“重试按钮点击进行重新加载"的过程你只需在你的点击事件中加入
refreshView.setRefreshing(true);
4.加载失败重试机制
如果项目中需要支持加载失败时重试机制(这里指已经加载出数据但是在加载下一页数据失败时,点击底部变更的ui进行加载,详见上图gif加载更多时显示点击重试),当然控件也满足需求,调用时需要判断是否时大于第一页(注:有的公司接口规定从0开始,有的从1开始),这里还有一点要注意:如果当前不是首页的情况下加载失败,你需要将你的页码数减一,否则会跳过本页数据展示,用法如下:
@Override
public void onFail(TinaException exception) {
if (m > 1) {//m标记着是否是第一页数据,如果大于第一页时,页面数要减一,以保证数据不会遗漏加载
size = size - 1;
refreshView.onError();//处理加载失败的ui显示和点击ui重新加载的机制
} else {
refreshView.setErrorView();//当第一页数据加载失败时显示的占位
}
refreshView.complete();//表示隐藏刷新的ui
}
5.加载完成状态,显示”-- 没有更多了 --“
refreshView.onNoMore();
显示细节补充和实现
1. 控件默认支持线性布局
2. 变更下拉刷新的ui圆圈颜色
refreshView.getSwipeRefreshLayout().setColorSchemeColors(getResources().getColor());
3 禁止下拉刷新
refreshView.setRefreshEnable(false);
4. 禁止加载更多
refreshView.setLoadMoreEnable(false);
附
笔记27 | WindowManager实现悬浮窗口总结
笔记26 | 总结Android的获取系统时间的几种方法
笔记25 | 通过自定义VIEW实现一个圆盘转动UI
笔记24 | 一个中间打开界面的动画
笔记23 | 复习了/而/做......而的几种循环用法
结束
- 笔记28 | 学习一个简单好用的下拉刷新、上拉加载控件
- 一个简单好用的下拉刷新、上拉加载控件
- 分享一个简单好用的下拉刷新、上拉加载控件
- 分享一个简单好用的下拉刷新、上拉加载控件
- 简单好用的上拉加载下拉刷新 BaseRecyclerViewAdapterHelper
- SwipeRefreshLayout+RecyclerView 完成下拉刷新,上拉加载更多的自定义控件,简单好用
- android 好用的listview上拉加载下拉刷新
- Android listview下拉刷新,上拉加载(发现一个比较好用的,和大家分享下)
- 下拉刷新,上拉加载控件
- 上拉加载-下拉刷新控件 RefreshListView
- 上拉刷新下拉加载控件-PullToRefresh
- 上拉加载下拉刷新控件
- 下拉刷新、上拉加载控件的写法(详解)
- 自定义控件-下拉刷新和上拉加载的listView
- 自个儿写Android的下拉刷新/上拉加载控件
- 上拉刷新下拉加载控件MaterialRefreshLayout的使用
- 上拉加载下拉刷新方法-ApiCloud学习笔记
- XListView简单上拉加载下拉刷新
- new对象时,类名后加括号与不加括号的区别
- 刚刚接入“优享”的优步中国,要用“刚刚好”的服务平衡司机与乘客需求
- 安卓对话框问题集锦-不定时更新
- 学习Git的最好的方法可能是什么?
- c# string转int Convert 和 Parse
- 笔记28 | 学习一个简单好用的下拉刷新、上拉加载控件
- 【转载】Elasticsearch初步
- mfc 裸写sd卡扇区
- C语言基础之常用文件操作2(附代码)
- buildscript中的repositories和allprojects的repositories的作用和区别是什么呢?
- Centos7安装MariaDB
- 约瑟夫环问题
- 文章标题
- c# enum 枚举