一个下拉刷新的工具,可在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控件
介绍完毕!