安卓下拉刷新,pulltorefresh的使用

一个下拉刷新的工具,可在github中找到,下面介绍一下用法

1.首先导入,这个就不说了,里面有很多工具,listView,webview等,

2.以listview为例,首先是布局文件

<com.handmark.pulltorefresh.library.PullToRefreshListView
        xmlns:ptr="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="none"
        android:fadingEdge="none" android:cacheColorHint="@color/none"
        android:listSelector="@color/none" android:divider="@color/none" android:id="@+id/listView"
        android:orientation="vertical" android:layout_weight="1"
        ptr:ptrDrawable="@drawable/default_ptr_rotate"
        ptr:ptrAnimationStyle="rotate"
        ptr:ptrHeaderTextColor="@color/font" android:layout_marginBottom="-25dp"/>
当然这是可以根据自己的实际情况修改的,ptr工具里的布局和样式有两种,看自己喜欢哪种

3.avtivity里面,需要实现PullToRefreshBase类里面的OnRefreshListener2<ListView>接口,里面有两个方法,上拉和下拉,下面是我写的

@Override
public void onPullDownToRefresh(PullToRefreshBase refreshView) {
    switch (select) {
        case 0:
            leftpage = 1;
            leftRefresh = true;
            if (hasnet) {
                getNews(leftpage);
            } else {
                Toast.makeText(ListActivity.this, "当前没有网络", Toast.LENGTH_SHORT).show();
                handler.post(new Runnable() {

                    @Override
                    public void run() {
                        // TODO Auto-generated method stub
                        list.onRefreshComplete();
                    }
                });
            }

            break;
        case 1:
            midpage = 1;
            midRefresh = true;
            if (hasnet) {
                getNews(midpage);
            } else {
                Toast.makeText(ListActivity.this, "当前没有网络", Toast.LENGTH_SHORT).show();
                handler.post(new Runnable() {

                    @Override
                    public void run() {
                        // TODO Auto-generated method stub
                        list.onRefreshComplete();
                    }
                });
            }
            break;
        case 2:
            rightpage = 1;
            rightRefresh = true;
            if (hasnet) {
                getNews(rightpage);
            } else {
                Toast.makeText(ListActivity.this, "当前没有网络", Toast.LENGTH_SHORT).show();
                handler.post(new Runnable() {

                    @Override
                    public void run() {
                        // TODO Auto-generated method stub
                        list.onRefreshComplete();
                    }
                });
            }
            break;
    }
}

@Override
public void onPullUpToRefresh(PullToRefreshBase refreshView) {
    switch (select) {
        case 0:
            if (leftEnd) {
                Toast.makeText(this, "没有更多数据啦", Toast.LENGTH_SHORT).show();
                handler.post(new Runnable() {

                    @Override
                    public void run() {
                        // TODO Auto-generated method stub
                        list.onRefreshComplete();
                    }
                });
            } else {
                leftpage++;
                getNews(leftpage);
            }
            break;
        case 1:
            if (midEnd) {
                Toast.makeText(this, "没有更多数据啦", Toast.LENGTH_SHORT).show();
                handler.post(new Runnable() {

                    @Override
                    public void run() {
                        // TODO Auto-generated method stub
                        list.onRefreshComplete();
                    }
                });
            } else {
                midpage++;
                getNews(midpage);
            }
            break;
        case 2:
            if (rightEnd) {
                Toast.makeText(this, "没有更多数据啦", Toast.LENGTH_SHORT).show();
                handler.post(new Runnable() {

                    @Override
                    public void run() {
                        // TODO Auto-generated method stub
                        list.onRefreshComplete();
                    }
                });
            } else {
                rightpage++;
                getNews(rightpage);
            }
            break;
    }
}
具体根据自己实际情况写,

4.如果只需要上拉或者只需要下拉,可以通过PullToRefreshListView的setMode方法修改,比如list.setMode(PullToRefreshBase.Mode.BOTH);

5.自定义上拉下拉显示的文字,比如:

list就是那个自定义的listview控件


介绍完毕!


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值