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谢谢

更多相关文章

  1. 程序设置横屏后,锁屏时会被销毁一遍,解锁时又重新加载onCreate的问
  2. Android练习项目——知乎日报
  3. android selector android:state_enabled 无效
  4. 解决NestedScrollView中嵌套ViewPager,ViewPager内容无法正常显示
  5. Android(安卓)NDK 开发 —— 从 Assets 文件夹加载图片并上传纹
  6. Activity的生命周期,状态保存,窗口显示,取得返回结果,安全退出
  7. Android(安卓)事件传递机制实测
  8. 浅谈Android开机启动速度优化
  9. Android(安卓)Wifi模块学习

随机推荐

  1. Android(安卓)studio或者idea: marketplac
  2. Android(安卓)中GridView上图下字、GridV
  3. Android基于Intent实现Activity之间数据
  4. 如何设置一个activity透明
  5. [置顶] Android自动登录的实现SharePrefe
  6. Android(安卓)文件系统路径
  7. 无法找到android.os.SystemProperties解
  8. android UI设计器-droiddraw
  9. android的system.img,userdata.img,ramdi
  10. Android(安卓)微信小程序打开app,app分享