android-Ultra-Pull-To-Refresh库
github地址
https://github.com/Chanven/CommonPullToRefresh
有个较为详尽的例子,包含有上拉加载更多
http://blog.youkuaiyun.com/leejizhou/article/details/50823184
在module的gradle中加入
compile 'com.chanven.lib:cptr:1.1.0'
在xml布局文件中使用布局
<com.chanven.lib.cptr.PtrClassicFrameLayout> </com.chanven.lib.cptr.PtrClassicFrameLayout>
进行包裹
在Activity.java中
mPtrFrame=(PtrClassicFrameLayout) findViewById(R.id.chanven); /****下拉刷新****/ //下拉刷新支持时间 mPtrFrame.setLastUpdateTimeRelateObject(this); //下拉刷新一些设置 详情参考文档 mPtrFrame.setResistance(1.7f); mPtrFrame.setRatioOfHeaderHeightToRefresh(1.2f); mPtrFrame.setDurationToClose(200); mPtrFrame.setDurationToCloseHeader(1000); // default is false mPtrFrame.setPullToRefresh(false); // default is true mPtrFrame.setKeepHeaderWhenRefresh(true); //进入Activity就进行自动下拉刷新 // mPtrFrame.postDelayed(new Runnable() { // @Override // public void run() { // mPtrFrame.autoRefresh();//自动调用onRefreshBegin中的run内的数据处理和UI刷新操作 // } // }, 100); //下拉刷新 mPtrFrame.setPtrHandler(new PtrDefaultHandler() { @Override public boolean checkCanDoRefresh(PtrFrameLayout frame, View content, View header) {//检查是否能够刷新 return super.checkCanDoRefresh(frame, content, header); } @Override public void onRefreshBegin(PtrFrameLayout frame) { mPtrFrame.postDelayed(new Runnable() { @Override public void run() { refresh();//刷新数据并更新UI,可换成数据处理的相关操作 mPtrFrame.refreshComplete();//发出刷新操作完成的信号 // mPtrFrame.setLoadMoreEnable(true); } },100); mPtrFrame.setOnLoadMoreListener(new OnLoadMoreListener() { @Override public void loadMore() { Toast.makeText(MainActivity.this, "load more complete", Toast.LENGTH_SHORT) .show(); } }); } });