这是一个下拉刷新上拉加载更多框架(PS:后期还会加入一些常用的功能),头部用的秋哥的Android系统的超拉至刷新,底部和没有数据的状态自己实现的。其实刚刚开始我是想找个库直接用的,试了几个排名靠前的,感觉跟自己想要的不太一样,索性自己写了一个,当然这当中也遇到了问题,多亏仲大师锦的帮助在此感谢。
默认头部与顶部效果
材质风格
gradle
compile 'com.yysauce:easyrecyclerview:1.0.0'
目前有两个参数可以配置
应用:emply_layout
没有数据时候布局
应用:number_load_more
最后可见条目+ number_load_more>总触发加载更多;默认值为4
<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还在优化欢迎各位提出你们宝贵的意见,例子可以参考
Android基于FlatList的上拉、下拉刷新组件
Android打造万能的ListView和GridView适配器
Android高仿今日头条ListView视频播放和优酷视频播放悬浮窗
Android中RecyclerView的自定义布局管理器模仿TextView跨行为,
支持多个方向滑动的 View,类似 Calendar 里的 UI 效果
一个下拉刷新上拉加载更多的Android框架
用于在RecyclerView和AbsListView上创建简单分页功能的库
TwinklingRefreshLayout 小而强大的刷新控件,自带顺滑的越界回
Android具有闪烁视图的自定义回收器视图,用于指示视图正在加载
一个Android的二维RecyclerView。不仅可以加载历史数据,而且可
Android滚轮控件
使用ExpandableListView实现的购物车
Android基于FlatList的上拉、下拉刷新组件
TwinklingRefreshLayout 小而强大的刷新控件,自带顺滑的越界回
一个Android的二维RecyclerView。不仅可以加载历史数据,而且可
刷新滑动删除listview
一个Android定制的ListView和滚动型上拉放大效果
一个支持多种状态的自定义View
热门源码