首页

源码搜藏网

首页 > 安卓源码 > 控件分类 > 列表ListView >

一个下拉刷新上拉加载更多的Android框架

创建时间:2017-01-22 10:01  

一个下拉刷新上拉加载更多的Android框架
一个下拉刷新上拉加载更多的Android框架
暂无演示 立即下载

这是一个下拉刷新上拉加载更多框架(PS:后期还会加入一些常用的功能),头部用的秋哥的Android系统的超拉至刷新,底部和没有数据的状态自己实现的。其实刚刚开始我是想找个库直接用的,试了几个排名靠前的,感觉跟自己想要的不太一样,索性自己写了一个,当然这当中也遇到了问题,多亏仲大师锦的帮助在此感谢。

特点:

效果预览

1.定制头部&定制脚步

默认头部与顶部效果

材质风格

头部吸附

使用方式

依赖

gradle

compile 'com.yysauce:easyrecyclerview:1.0.0' 

配置

目前有两个参数可以配置

xml中配置示例

<com.zly.www.easyrecyclerview.EasyDefRecyclerView
        android:id="@+id/erv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:emply_layout="@layout/erv_default_empty" />

活动代码配置

erv.setAdapter(rvAdapter = new RvAdapter());//设置adapter
erv.setLastUpdateTimeRelateObject(this);//传入参数类名作为记录刷新时间key
erv.setOnRefreshListener(this);//设置刷新监听
erv.setOnLoadListener(this);//设置加载更多监听

由于这里使用的EasyDefRecyclerView,头部就是默认经典样式所需要调用,使用其他头部时不需要调用

erv.setLastUpdateTimeRelateObject(this);//传入参数类名作为记录刷新时间key

适配器代码配置

adapter需要实现CommonAdapter或者MultipleAdapter抽象方法

//创建ViewHolder
public abstract VH createCustomViewHolder(ViewGroup parent, int viewType);
//ViewHolder设置数据
public abstract void bindCustomViewHolder(VH holder, T t, int position);

Multiple Adapter多条目布局还多一个方法需要实现

//返回多条目的type
public abstract int customItemViewType(int position);

目前提供了下面这些方法操作适配器数据,具体实现可以在CommonAdapter中查看

新增数据

删除数据

修改数据

查看数据

排序

加载布局

adapter中ViewHolder需要继承BaseViewHolder 

其他配置

头部吸附效果

  mItemDecoration = new StickItemDecoration(context,dataList) {
              @Override
              public String getTag(int position) {
                  return "吸附头部显示的文字";
              }
    }
  erv.addItemDecoration(mItemDecoration);

这里StickItemDecoration提供了如下方法来定制吸附效果

//设置吸附条目高度
public void setStickHeight(int mStickHeight)
//设置吸附条目背景
public void setStickBackgroundColor(int mStickBackgroundColor)
//设置吸附文字颜色
public void setStickTextColor(int mStickTextColor)
//设置吸附文字大小
public void setStickTextSize(int mStickTextSize)
//设置吸附文字leftmargin
public void setStickTextoffset(int mStickTextoffset)

自定义

头部使用秋哥的Android系统的超拉至刷新 秋哥默认已经实现了3个头部

一般情况下这些样式应该够了,如果有特殊需要可以自定义头部。

底部的话目前我只实现了一个ErvDefaultFooter,自定义的话需要实现ErvLoadUIHandle接口。写法可以参考ErvDefaultFooter

 public interface ErvLoadUIHandle {

    /**
     * 允许加载更多
     */
    int LOAD = 1;

    /**
     * 暂无更多数据
     */
    int NOMORE = 2;

    /**
     * 加载失败
     */
    int LOADFAIL = 3;

    /**
     * @return 获取底部当前状态
     */
    int getState();

    void onLoading();//loading状态实现

    void onNoMore();//没有数据状态实现

    void onLoadFail(OnLoadListener listener);//加载失败实现


}

实现后调用setFooterView()方法设置 

总结

目前还在EasyRecyclerView还在优化欢迎各位提出你们宝贵的意见,例子可以参考 

上一篇:用于在RecyclerView和AbsListView上创建简单分页功能的库
下一篇:支持多个方向滑动的 View,类似 Calendar 里的 UI 效果

相关内容

热门推荐