android下拉刷新android-Ultra-Pull-To-Refresh使用
android下拉刷新android-Ultra-Pull-To-Refresh第三方库功能很强大,基本能满足下拉刷新的要求,如果你需要加在更多,可以看一下cube-sdk第三方库,他们的关系式android-Ultra-Pull-To-Refresh是从cube-sdk中独立出来的。
直接讲怎么用,不废话。
1.下载代码:https://github.com/liaohuqiu/android-Ultra-Pull-To-Refresh
里面有两个文件夹:ptr-demo和ptr-lib
其中ptr-demo是例子,你可以参考里面的代码,开发者没有给出例子代码讲解,建议开发者可以给几个。
ptr-lib是个库函数,里面有自定义的组件可以直接拿过来用,比如在布局中的
在你的项目中直接引用,不知道怎么又能用的可以百度一下eclipse怎么引用外部项目库。
2、就是ptr-demo导入eclipse中时有错误,缺少资源库,官网给说了什么maven但我没用过,可以用cube-sdk的core库,就是下载cube-sdk导入eclipse中。导入core库,有两个错误,一个少了逗号直接解决 ,一个就是官网也说了具体看这里:http://www.liaohuqiu.net/cn/posts/compile-ultra-ptr-in-eclipse/
-
getAllocationByteCount()
需要版本SDK >= 19
就是在eclipse中设置大于19.
这个cube-sdk只是用来跑例子代码的测试的,主要是应用ptr-lib这个库。
3、先跑个代码:建个hello工程:
布局代码:
<?xml version="1.0" encoding="utf-8"?>
java代码中: @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ptr = (PtrClassicFrameLayout) findViewById(R.id.ptr);
ptr.setPtrHandler(new PtrHandler() {
@Override
public boolean checkCanDoRefresh(PtrFrameLayout frame, View content, View header) {
return true;
}
@Override
public void onRefreshBegin(final PtrFrameLayout frame) {
frame.postDelayed(new Runnable() {
@Override
public void run() {
frame.refreshComplete();
}
}, 2000);
}
});
}
注意到 PtrClassicFrameLayout是经典头部,不用自己添加头部,最常用的。只要添加内容就行了。就是textview.
如果要完成头部多样化,就要用到 PtrFrameLayout( PtrClassicFrameLayout继承前者)添加头部 ptr.setHeaderView(header);
代码如下:
java代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final StoreHouseHeader header = new StoreHouseHeader(this);
header.setPadding(0, LocalDisplay.dp2px(15), 0, 0);
header.initWithString("hello");
ptr = (PtrFrameLayout) findViewById(R.id.ptr);
ptr.setHeaderView(header);
ptr.addPtrUIHandler(header);
ptr.setPtrHandler(new PtrHandler() {
@Override
public boolean checkCanDoRefresh(PtrFrameLayout frame, View content, View header) {
return true;
}
@Override
public void onRefreshBegin(final PtrFrameLayout frame) {
frame.postDelayed(new Runnable() {
@Override
public void run() {
frame.refreshComplete();
}
}, 2000);
}
});
}
效果图:
注意ptr-lib中默认的字体颜色是白色,你可以修改成其他颜色,就是在in.srain.cube.views.ptr.header中修该mtextcolor。
其中你可能需要看一下源代码解析,这边文章很好,http://www.open-open.com/lib/view/open1436405920005.html。
看了这以后就不那么糊涂了。上面代码中会缺少LocalDisplay.dp2px(15),这是core库中的,你可以从core中拷贝一下 LocalDisplay.java 到自己的项目中,这样就不用引入core库了。
更多相关文章
- Android 打开相机、相册获取图片文件,支持Android 9.0系统
- android中调用系统功能 来显示本地相册图片 拍照 视频 音频功能
- Android中欢迎界面背景图片放大效果
- 【知识点】android代码中设置margin
- Android分享图片
- android JNI处理图片的例子
- Android仿微信朋友圈发图片和文字
- Android蓝牙通信代码
- Android代码规范