BGARefreshLayout的简单使用

来源:互联网 发布:nginx http error 503 编辑:程序博客网 时间:2024/06/06 03:09

一个新的上拉下拉刷新的库工程

需要依赖,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;    }}
1 0