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

Android 利用第三方库实现下拉刷新 -android-Ultra-Pull-To-Refresh

2016-09-22 15:18 766 查看
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();

}
});

}

});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  下拉刷新 android