废话,先看效果,嗯…看起来有点卡,截图软件的问题:
上图中演示了三种不同的布局和下拉效果,三种布局和三种下拉效果可以通过Header的设置任意组合。
图中普通列表是ListView样式,没有设置Header和Footer,使用默认的下拉刷新和上拉加载。
宫格列表使用的是自定义Header和Footer的下拉刷新和上拉上拉加载,并设置了下拉使放大的图片。
瀑布流列表使用的是自定义Header和Footer的下拉刷新和上拉上拉加载,没有设置了下拉使放大的图片,使用默认的刷新动画。
用法:
在android studio中的用法
dependencies {
compile 'com.sch.rfview:AnimRefreshRecyclerView:1.0.1'
}
Eclipse的同学们可以自己下载源码拷贝java文件到自己的工程(别忘了引用RecyclerView的包哦)。
代码中的配置参考下面的用法代码片段,除了RecyclerView自带的方法,其他方法都是可选的。
项目地址:https://github.com/shichaohui/AnimRefreshRecyclerViewDemo
项目中包含一个demo(普通Android工程)和Android Library,感兴趣的同学可以自己下载源码和Demo。
用法代码片段:
mRecyclerView.setLayoutManager(
new
AnimRFLinearLayoutManager(
this
));
mRecyclerView.setLayoutManager(
new
AnimRFGridLayoutManager(
this
,
2
));
mRecyclerView.setLayoutManager(
new
AnimRFStaggeredGridLayoutManager(
3
, StaggeredGridLayoutManager.VERTICAL));
headerView = LayoutInflater.from(this).inflate(R.layout.header_view, null);
footerView = LayoutInflater.from(this).inflate(R.layout.footer_view, null);
mRecyclerView.addHeaderView(headerView);
mRecyclerView.setScaleRatio(2.0f);
mRecyclerView.setHeaderImage((ImageView) headerView.findViewById(R.id.iv_hander));
mRecyclerView.addFootView(footerView);
可以通过addHeaderView()
和setHeaderImage()
方法任意组合下拉效果,可以调用多次addHeaderView()
方法添加多个头部,但是setHeaderImage()
方法最多被调用一次。
最多调用一次addFootView()
方法,即最多设置一个FooterView。
mRecyclerView.setColor(Color.RED, Color.WHITE);
mRecyclerView.setHeaderImageDurationMillis(
1200
);
mRecyclerView.setHeaderImageMinAlpha(
0.6
f);
mRecyclerView.setAdapter(
new
MyAdapter());
mRecyclerView.setLoadDataListener(
new
AnimRFRecyclerView.LoadDataListener() {
@Override
public
void
onRefresh
() {
new
Thread(
new
MyRunnable()).start();
}
@Override
public
void
onLoadMore
() {
new
Thread(
new
MyRunnable()).start();
}});
mRecyclerView.refreshComplate();
mRecyclerView.loadMoreComplate();