- SwiperefreshRecyclerview
-
支持下拉刷新、上拉加载的 Recyclerview,包括线性布局、网格布局和 流布局。只需要在adapter中绑定数据,其他的交给我,就是这么6。
- To get a Git project into your build:
- Step 1. Add the JitPack repository to your build file
- Add it in your root build.gradle at the end of repositories:
allprojects { repositories { ... maven { url 'https://jitpack.io' } } }
- Step 2. Add the dependency
dependencies { compile 'com.github.mtjsoft:SwiperefreshRecyclerview:1.1.0' }
- GitHub 源码: SwiperefreshRecyclerview源码
- 使用 Demo: SwiperefreshRecyclerviewDemo
- 线性布局:
- 网格布局:
- 流式布局:
- 1、activity 继承 HHBaseListRecyclerViewActivity:
①getListDataInThread()异步获取数据。 ②setLayoutManagerType()方法即可实现 线性布局、网格布局 和 流布局。
/**
* 异步获取数据
*
* @param pageIndex 页码
* @param callBack 异步获取数据后的回调
* callback.onResponse(list);
* callback.onFailure(string);
*/
@Override
protected void getListDataInThread(int pageIndex, final NetCallBack<DataModel> callBack) {
}
/**
* 设置recyclerview 的adapter
*/
@Override
protected HHBaseRecyclerViewAdapter<DataModel> instanceAdapter(List<DataModel> list) {
//return 自己的adapter
return new MyAdapterDemo(getContext(), list);
}
/**
* 设置item之间的距离
*
* @return
*/
@Override
protected int setItemDecoration() {
return 10;
}
/**
* 设置每页获取数据的大小
*
* @return
*/
@Override
protected int setPageSize() {
return 30;
}
/**
* 设置LayoutManager类型,默认2
* 【
* 0:LinearLayoutManager ,
* 1:GridLayoutManager,
* 2:StaggeredGridLayoutManager
* 】
* 设置1、2时,setCount()方法,设置列数,默认2
*
* @return
*/
@Override
protected int setLayoutManagerType() {
return 2;
}
/**
* 设置每行列数,默认2
*/
@Override
protected int setCount() {
return 2;
}
-
2、Fragment 继承 HHBaseListRecyclerViewFragment ,使用方法与 Activity 继承HHBaseListRecyclerViewActivity的一致 用fragment来实现,可以嵌套在任意activity里使用
-
3、adapter 继承 HHBaseRecyclerViewAdapter : 通过下面两个方法就可以实现view复用,数据绑定,简单高效
/**
* 设置item布局
*/
@Override
protected int getViewHolderLaoutId() {
return R.layout.item;//自己的item.xml
}
/**
* 绑定数据
*/
@Override
protected void bindViewHolderData(HHBaseViewHolder holder, int position) {
//通过holder得到控件,通过position得到对应数据,进行数据绑定
}
- 4、activity 和 fragment 中可以自主设置以下等方法。
/**
* 设置是否下拉刷新
*/
setIsRefresh(Boolean refresh)
/**
* 设置是否加载更多
*
* @param load_more true是
*/
setIsLoadMore(Boolean load_more)
/**
* 设置底部加载更多的loading布局,不设置时,使用默认布局
*
* @param footView
*/
setFootView(View footView)
/**
* 获取列表数据
*/
getPagerListData()
/**
* 获取recyclerview
*/
getRecyclerView()
/**
* 刷新页面数据
*/
onRefresh()
/**
* 设置页码
*
* @param pageIndex
*/
setPageIndex(int pageIndex)
/**
* 当前页码
*/
getPageIndex()