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是个库函数,里面有自定义的组件可以直接拿过来用,比如在布局中的 就是在这里:

android下拉刷新android-Ultra-Pull-To-Refresh使用_第1张图片

在你的项目中直接引用,不知道怎么又能用的可以百度一下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


android下拉刷新android-Ultra-Pull-To-Refresh使用_第2张图片

就是在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);
            }
        });
    }


android下拉刷新android-Ultra-Pull-To-Refresh使用_第3张图片

注意到 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);
            }
        });
    }

效果图:

android下拉刷新android-Ultra-Pull-To-Refresh使用_第4张图片

注意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库了。

更多相关文章

  1. Android 打开相机、相册获取图片文件,支持Android 9.0系统
  2. android中调用系统功能 来显示本地相册图片 拍照 视频 音频功能
  3. Android中欢迎界面背景图片放大效果
  4. 【知识点】android代码中设置margin
  5. Android分享图片
  6. android JNI处理图片的例子
  7. Android仿微信朋友圈发图片和文字
  8. Android蓝牙通信代码
  9. Android代码规范

随机推荐

  1. Android(安卓)反射获取内外置存储卡方法
  2. android系统编译流程简要分析与使用
  3. Android(安卓)系统分析
  4. adb shell 命令详解
  5. Android(安卓)NDK 第一个例子 HelloNDK
  6. android + red5 + rtmp
  7. Android的内存机制和溢出说明
  8. [Phonegap+Sencha Touch] 移动开发50 And
  9. Android(安卓)实用工具Hierarchy Viewer
  10. 用 Java 7 语法开发 Android(安卓)应用