使用PullToRefresh实现下拉刷新和上拉加载

PullToRefresh是一套实现非常好的下拉刷新库,它支持:

1.ListView

2.ExpandableListView

3.GridView

4.WebView

等多种常用的需要刷新的View类型,而且使用起来也十分方便。

(下载地址:https://github.com/chrisbanes/Android-PullToRefresh)

 

下载完成,将它导入到eclipse中,作为一个library导入到你的工程中就好了。

 

一、废话少说,下拉刷新go。

 1.在你的布局文件中加上你想用的View就好了,比如这儿我想用一个支持下拉 刷新的ListView

   <com.handmark.pulltorefresh.library.PullToRefreshListView xmlns:ptr="http://schemas.android.com/apk/res-auto"
            android:id="@+id/all_question_list"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingBottom="5dp"
            android:dividerHeight="0dp"
            android:divider="@null"
            android:cacheColorHint="@android:color/transparent"
            android:listSelector="@null"
            android:background="@android:color/white"
            ptr:ptrHeaderTextColor="@android:color/black" />

2. 在你的Activity代码中进行简单的设置:

@ViewMapping(id = R.id.all_question_list)
    private PullToRefreshListView mRefreshListView;

这样你就可以对PullToRefreshListView进行操作。

    mRefreshListView.setMode(PullToRefreshBase.Mode.BOTH);
        mRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> listViewPullToRefreshBase) {
                requestQuestionList(1);
                Utils.resetRefreshLabel(getActivity(), mRefreshListView);
            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> listViewPullToRefreshBase) {
                if (mCurPage * PAGE_SIZE >= mTotal) {
                    Utils.setRefreshLabelToLast(getActivity(), mRefreshListView);
                    Utils.COMMON_HANDLER.sendMessageDelayed(
                            Message.obtain(Utils.COMMON_HANDLER, Utils.REFRESH_TO_COMPLETE, mRefreshListView), 500);
                } else {
                    requestQuestionList(mCurPage + 1);
                }
            }
        });
    }

其中setMode为Mode.Both是既要要实现上拉,也要实现下拉。

当下拉和上拉完成时记得执行如下语言:mRefreshListView.onRefreshComplete();

 

posted @ 2015-09-09 17:47  lisahappy  阅读(1797)  评论(0编辑  收藏  举报