版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28779083/article/details/73740106
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()