快速集成Android实现下拉刷新上拉加载更多

本文实现一分钟快速集成BGARefreshLayout下拉刷新和上拉加载的功能.

这个是简单单功能的集成方法,详细BGARefreshLayout请到github中的demo,这只是我简化版快速集成.





重要的代码实现如下:

MainActivity类:

public class MainActivity extends AppCompatActivity implements BGARefreshLayout.BGARefreshLayoutDelegate{
     BGARefreshLayout mRefreshLayout;
     ListView mLv;
     List<String> datas;
    private Handler mHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what) {
                case 1:
                    Toast.makeText(MainActivity.this, "下拉刷新完毕!", Toast.LENGTH_SHORT).show();
                    mRefreshLayout.endRefreshing();
                    break;
                default:
                    Toast.makeText(MainActivity.this, "加载更多完毕!", Toast.LENGTH_SHORT).show();
                    datas.add("添加数据");
                    mRefreshLayout.endLoadingMore();
                    break;
            }
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mRefreshLayout = (BGARefreshLayout) findViewById(R.id.refresh_layout);
        mLv = (ListView) findViewById(R.id.lv);
        mAdddatas();//自定义数据
        initBGARefreshLayout();
    }
    public void mAdddatas(){
        datas = new ArrayList<>();
        for (int i = 'A'; i < 'z'; i++) {
            datas.add("使用的假数据:---->" + (char) i);
        }
        mLv.setAdapter(new ArrayAdapter<String>(this, android.R
                .layout.simple_list_item_1, datas));
    }
    public void initBGARefreshLayout(){
        // 为BGARefreshLayout设置代理
        mRefreshLayout.setDelegate(this);
        // 设置下拉刷新和上拉加载更多的风格     参数1:应用程序上下文,参数2:是否具有上拉加载更多功能
        BGANormalRefreshViewHolder refreshViewHolder = new BGANormalRefreshViewHolder(this, true);

        refreshViewHolder.setPullDownRefreshText("往下拉!");
        refreshViewHolder.setRefreshingText("正在刷!");
        refreshViewHolder.setReleaseRefreshText("放开我!");
        // 为了增加下拉刷新头部和加载更多的通用性,提供了以下可选配置选项  -------------START
        // 设置正在加载更多时不显示加载更多控件
        // mRefreshLayout.setIsShowLoadingMoreView(false);
        // 设置正在加载更多时的文本
        refreshViewHolder.setLoadingMoreText("数量变多");
        // 设置整个加载更多控件的背景颜色资源id
        //     refreshViewHolder.setLoadMoreBackgroundColorRes(R.color.colorPrimary);
        // 设置整个加载更多控件的背景drawable资源id
        //refreshViewHolder.setLoadMoreBackgroundDrawableRes(loadMoreBackgroundDrawableRes);
        // 设置下拉刷新控件的背景颜色资源id
        //  refreshViewHolder.setRefreshViewBackgroundColorRes(refreshViewBackgroundColorRes);
        // 设置下拉刷新控件的背景drawable资源id
        //    refreshViewHolder.setRefreshViewBackgroundDrawableRes(R.mipmap.ic_launcher);
        // 设置自定义头部视图(也可以不用设置)     参数1:自定义头部视图(例如广告位), 参数2:上拉加载更多是否可用
//        View mheader=getLayoutInflater().inflate(R.layout.header,mRefreshLayout,false);
//        mRefreshLayout.setCustomHeaderView(mheader,true);
        // 可选配置  -------------END

        // 设置下拉刷新和上拉加载更多的风格
        mRefreshLayout.setRefreshViewHolder(refreshViewHolder);
    }

    @Override
    public void onBGARefreshLayoutBeginRefreshing(BGARefreshLayout refreshLayout) {
        mHandler.sendEmptyMessageDelayed(1, 3000);
    }

    @Override
    public boolean onBGARefreshLayoutBeginLoadingMore(BGARefreshLayout refreshLayout) {
        mHandler.sendEmptyMessageDelayed(2, 3000);
            return true;
        }

}
这个是最简单的xml添加点击事件(正规开发不用,看上去很简明)按钮刷新方法:

//    public void bottom1(View view){
//        mRefreshLayout.beginLoadingMore();//按钮点击开始加载
//    }
//    public void bottom2(View view){
//        mRefreshLayout.beginRefreshing();//按钮点击开始刷新
//    }

activity_main.xml类:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
<cn.bingoogolapple.refreshlayout.BGARefreshLayout
    android:layout_above="@+id/bottomlayout"
    android:id="@+id/refresh_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ListView
        android:id="@+id/lv"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"/>
</cn.bingoogolapple.refreshlayout.BGARefreshLayout>
  <LinearLayout
      android:id="@+id/bottomlayout"
      android:layout_alignParentBottom="true"
      android:layout_width="match_parent"
      android:orientation="horizontal"
      android:background="#f0f"
      android:layout_height="30dp">
      <TextView
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:text="下面的栏目"/>
  </LinearLayout>
</RelativeLayout>

要实现功能还要依赖library库,可以自己依赖BGA的库.

链接:http://pan.baidu.com/s/1qY2AxPE 







  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值