工作总结|Android(安卓)自定义列表刷新控件
16lz
2021-01-24
Android 中上拉加载和下拉刷新都是很常用的控件,所以在 Android 后续版本中提供了 PullToRefresh 这个控件,以方便开发者很便捷的集成下拉刷新功能。而对于上拉加载功能,仍然需要开发者自己监听 ListView 或者 RecyclerView 滑动状态来实现自己的上拉加载功能。因此在最近猿最近基于 PullToRefresh 与 RecyclerView 自己试做了一个控件:EasyRefreshView,来方便开发者集成相关功能。
控件截图
使用说明
1、AndroidStudio 集成方法
compile 'com.ray.easyrefreshview:easy-refresh-view:0.5.9'
2、Layout 布局文件声明
控件支持用户自定义相关 Item Layout ,分别是正常显示状态、等待显示状态、无更多数据状态、加载错误状态,集成者可以在 bindAdapter 中的 onCreate 回调方法中去创建对应 layout 的 Holder,并在 onBind 回调方法对相应的 View 进行操作。
3、控件绑定 Adapter 并自定义相关 ViewHolder
easyRefreshView.bindAdapter(new EasyRefreshHolderCallBack() { @Override public RecyclerView.ViewHolder onCreateNormal(View view) { //return new NormalHolder(view); } @Override public void onBindNormal(RecyclerView.ViewHolder holder, int position) { super.onBindNormal(holder, position); //todo } });
4、 控件滑动到顶部和底部的两种回调
当列表滑动到顶部和底部时,分别会有 onTopLoadStarted 与 onBottomLoadStarted 回调触发,继承者可以在这两个回调中进行下拉加载与上拉刷新进行数据更新。
public void onTopLoadStarted() { list.clear(); startRxLoad(0); } public void onBottomLoadStarted(int position) { if (position >= mTotalCount) { erv.setFootViewState(EasyRefreshAdapter.FOOT_STATE_LOAD_NOMORE); return; } erv.setFootViewState(EasyRefreshAdapter.FOOT_STATE_LOADING); startRxLoad(position + 1); }
目前控件已开源至GitHub(相关链接) , 相关 Demo 使用数据来源豆瓣电影开放 API ,使用 Retrofit2 进行网络请求,并利用RxJava 对进行了部分逻辑处理,欢迎 Fork 和 Star ,如果有改进意见也可以提给猿,猿会在后续版本中加以改进。
O(∩_∩)O谢谢
更多相关文章
- 程序设置横屏后,锁屏时会被销毁一遍,解锁时又重新加载onCreate的问
- Android练习项目——知乎日报
- android selector android:state_enabled 无效
- 解决NestedScrollView中嵌套ViewPager,ViewPager内容无法正常显示
- Android(安卓)NDK 开发 —— 从 Assets 文件夹加载图片并上传纹
- Activity的生命周期,状态保存,窗口显示,取得返回结果,安全退出
- Android(安卓)事件传递机制实测
- 浅谈Android开机启动速度优化
- Android(安卓)Wifi模块学习