您的位置:首页 > 移动开发 > Android开发

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

2016-07-13 17:10 465 查看
本文实现一分钟快速集成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 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: