一个新的上拉下拉刷新的库工程
需要依赖,github可以下载
compile 'com.android.support:recyclerview-v7:24.2.1'
compile 'com.nineoldandroids:library:2.4.0'
1.将内容用BGARefreshLayout包裹
(高度设置为权重是因为上拉加载的时候必须设置设置这个权重,)
<cn.bingoogolapple.refreshlayout.BGARefreshLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/bgarefresh">
<TextView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_gravity="center"
android:text="可以放任何控件"
android:id="@+id/text"/>
</cn.bingoogolapple.refreshlayout.BGARefreshLayout>
2.设置头布局就是刷新的样式
//设置头部特效参数1 上下文 参数2 是否支持加载更多
BGANormalRefreshViewHolder bgaNormalRefreshViewHolder = new BGANormalRefreshViewHolder(this, true);
bgaRefreshLayout.setRefreshViewHolder(bgaNormalRefreshViewHolder);
3.处理刷新的逻辑
//处理刷新的逻辑,也可以说是监听,也可以说是回调,反正就是一个下拉和上拉的逻辑在这里
bgaRefreshLayout.setDelegate(new BGARefreshLayout.BGARefreshLayoutDelegate() {
@Override
public void onBGARefreshLayoutBeginRefreshing(BGARefreshLayout refreshLayout) {
textView.setText(new Date().toLocaleString());
//关闭刷新的状态
bgaRefreshLayout.endRefreshing();
}
//上拉 return true 才会有更多页面,默认是false
@Override
public boolean onBGARefreshLayoutBeginLoadingMore(BGARefreshLayout refreshLayout) {
textView.setText("加载更多"+new Date().toLocaleString());
return true;
}
});
可以写一个工具类来替换下拉刷新的样式
public class HeaderUtil {
//设置旋转箭头的特效
public static BGARefreshViewHolder getNormalHeader(Context context
) {
return new BGANormalRefreshViewHolder(context, true);
}
// 获取的是粘性效果
public static BGARefreshViewHolder getStickyHeader(Context context) {
BGAStickinessRefreshViewHolder holder = new BGAStickinessRefreshViewHolder(context, true);
holder.setRotateImage(R.mipmap.bga_refresh_stickiness);
holder.setStickinessColor(R.color.colorAccent);
return holder;
}
public static BGARefreshViewHolder getWaveHeader(Context context
){
BGAWaveStyleRefreshViewHolder header=new BGAWaveStyleRefreshViewHolder(context,true);//1.上下文 2.是否支持加载更多
//水波颜色
header.setUltimateColor(R.color.colorAccent);
//图片
header.setOriginalImage(R.mipmap.bga_refresh_moooc);
return null;
}
public static BGARefreshViewHolder getMeituanHeader(Context context){
BGAMeiTuanRefreshViewHolder holder = new BGAMeiTuanRefreshViewHolder(context, true);
//设置小幅度拉动图片
holder.setPullDownImageResource(R.mipmap.bga_refresh_mt_pull_down);
//设置下拉 holder.setChangeToReleaseRefreshAnimResId(R.drawable.pulling);
//设置刷新时的图片,我这里采用的是帧动画 holder.setRefreshingAnimResId(R.drawable.refreshing);
return holder;
}
}