Android 利用第三方库实现下拉刷新 -android-Ul
2019-07-23 本文已影响0人
Cedric_h
原文:https://blog.csdn.net/uyy203/article/details/52622962
android-Ultra-Pull-To-Refresh库
github地址
https://github.com/Chanven/CommonPullToRefresh
有个较为详尽的例子,包含有上拉加载更多
http://blog.csdn.net/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();
}
});
}
});