有很多控件都可以下拉刷新如,ListView,ExpandableListView,GridView,ScrollView,ViewPager,WebView等,

其中最常见的是ListView。本文以实现ListView为例,其它类似。

使用Android-PullToRefresh

  地址:

    https://github.com/chrisbanes/Android-PullToRefresh  

  优点:

    里面有很多示例代码。使用简单。它里面含的PullToRefresh如下:

  缺点:

    样式不可定义麻烦,如 PullToRefreshListview 只显示一张图片,不是 [下箭头---上箭头---刷新] 那类常见的样式,更改成那样很麻烦,而是PullToRefreshScrollView是[下箭头---上箭头---刷新] 那类。

   

  下拉上拉 图标和文字 位置改动是在PullToRefresh源代码中改的即:PullToRefreshListView.handleStyledAttributes 中lp的Gravity改为CENTER_VERTICAL

如果想要改动图标和文字的距离和布局 在这library项目下这两个文件改

  • pull_to_refresh_header_horizontal.xml
  • pull_to_refresh_header_vertical.xml

PullToRefreshList示例 :

  下面以PullToRefreshListView为例:

  a,在layout中添加 pulltorefreshview ,设置其属性

 <com.handmark.pulltorefresh.library.PullToRefreshListView
android:id="@+id/pull_refresh_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:cacheColorHint="#00000000"
android:divider="#19000000"
android:dividerHeight="0.7dp"
android:fadingEdge="none"
android:fastScrollEnabled="false"
android:footerDividersEnabled="false"
android:gravity="center_horizontal"
android:headerDividersEnabled="false"
android:smoothScrollbar="true" />

  b,在代码中 findviewbyid,设置参数

   void initPullRefreshList(){
mPullRefreshListView = (PullToRefreshListView) tabHost.findViewById(R.id.pull_refresh_list);
mPullRefreshListView.setAdapter(adapter);
mPullRefreshListView.setPullLabel("pull");
mPullRefreshListView.setReleaseLabel("release");
mPullRefreshListView.setRefreshingLabel("refreshing");
mPullRefreshListView.setLoadingDrawable(context.getResources().getDrawable(R.drawable.pgrsb));
mPullRefreshListView.setOnRefreshListener(new PullToRefreshListView.OnRefreshListener<ListView>() {
@Override
public void onRefresh(PullToRefreshBase<ListView> refreshView) {
RefreshTask t = new RefreshTask();
t.execute();
}
});
}

  c,注意上面代码中的RefreshTask,自定义它,然后现实它。

   private class RefreshTask extends AsyncTask<Void, Void, Void>{
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
addSomeTableWeixinItem();
mPullRefreshListView.onRefreshComplete();
}
@Override
protected Void doInBackground(Void... params) {
try {
Thread.sleep();
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
} }

  注意  mPullRefreshListView.onRefreshComplete(); 它是关闭显示pulltorefreshview.

最终运行如下:

  

下拉刷新控件(1)PullToRefreshList示例的更多相关文章

  1. android官方下拉刷新控件SwipeRefreshLayout的使用

    可能开发安卓的人大多数都用过很多下拉刷新的开源组件,但是今天用了官方v4支持包的SwipeRefreshLayout觉得效果也蛮不错的,特拿出来分享. 简介:SwipeRefreshLayout组件只 ...

  2. [Android]下拉刷新控件RefreshableView的实现

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4172483.html 需求:自定义一个ViewGroup,实现 ...

  3. android SwipeRefreshLayout google官方下拉刷新控件

    下拉刷新功能之前一直使用的是XlistView很方便我前面的博客有介绍 SwipeRefreshLayout是google官方推出的下拉刷新控件使用方法也比较简单 今天就来使用下SwipeRefres ...

  4. Android PullToRefresh下拉刷新控件的简单使用

    PullToRefresh这个开源库早就听说了,不过一直没用过.作为一个经典的的开源库,我觉得还是有必要认识一下. 打开github上的网址:https://github.com/chrisbanes ...

  5. Android SwipeRefreshLayout 官方下拉刷新控件介绍

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/24521483 下面App基本都有下拉刷新的功能,以前基本都使用XListView ...

  6. Google SwipeRefreshLayout(Goolge官方下拉刷新控件)尝鲜

    前天Google官方终于出了Android刷新控件——SwipeRefreshLayout. 使用前先需要将android.support.v4.jar升级到19.1.升级后,可能会出现SDK版本与A ...

  7. 上拉加载下拉刷新控件WaterRefreshLoadMoreView

    上拉加载下拉刷新控件WaterRefreshLoadMoreView 效果: 源码: // // SRSlimeView // @author SR // Modified by JunHan on ...

  8. 官方下拉刷新控件SwipeRefreshLayout的使用

    今天看博客,发现有了这个下拉刷新的控件,效果看上去还蛮好的,于是我也想研究的是使用一下,写个demo.其实使用很简单的,但就是为了能使用这个新组建我下了好久的更新,后来还是直接去官网下载最新的ADT得 ...

  9. Android仿苹果版QQ下拉刷新实现(一) ——打造简单平滑的通用下拉刷新控件

    前言: 忙完了结婚乐APP的开发,终于可以花一定的时间放在博客上了.好了,废话不多说,今天我们要带来的效果是苹果版本的QQ下拉刷新.首先看一下目标效果以及demo效果:      因为此效果实现的步骤 ...

随机推荐

  1. SPOJ - DQUERY 主席树

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=32356 Given a sequence of n numbers ...

  2. eclipse中本地项目怎么和svn中的项目关联?

    网速不好,通过别的方式把项目下载到本地硬盘,然后导入eclipse,代码修改后怎么提交到svn呢? 这个纠结了好久的问题... 首先要确定eclipse中安装了svn插件. 然后在“svn资源库研究” ...

  3. nginx+php+flight 构建RESTFul API

    配置: Nginx: conf目录下nginx.conf配置文件. 第44行改为:root   D:/wwwroot/www; 第45行改为:index  index.html index.htm i ...

  4. .net程序集强名称签名实践

    引用:  http://www.cnblogs.com/cpcpc/archive/2011/01/17/2123086.html 强名称是由程序集的标识加上公钥和数字签名组成的.其中,程序集的标识包 ...

  5. UML 2.0(装载)

    在世界上统一建模语言UML2.0是完全不同的维度.它在本质上更加复杂和广泛. 与UML1.5版本相比,文件的程度也增加了. UML2.0中还增加了新的功能,所以它的使用可以更广泛. UML2.0将正式 ...

  6. .net 类型源码下载地址

    原文:http://www.cnblogs.com/ProJKY/p/SSCLI.html 一般场景下,采用 Reflector可以反射出.NET 的部分实现出来,可以拿来参考,但和微软公开的SSCL ...

  7. 由浅入深了解Thrift之服务模型和序列化机制

    一.Thrift介绍 Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发.它结合了功能强大的软件堆栈和代码生成引擎.其允许你定义一个简单的定义文件中的数据类型和服务接口.以作为输入文件,编 ...

  8. sql server 2008 修改sa密码

    问题: 当我们用windows本身验证之后需要修改sa密码,出现这样的错误. 解决方案:

  9. Javascript 数组循环遍历之forEach

    1.  js 数组循环遍历. 数组循环变量,最先想到的就是 for(var i=0;i<count;i++)这样的方式了. 除此之外,也可以使用较简便的forEach 方式   2.  forE ...

  10. springmvc的mvc:view-controller标签

    1.重定向 <mvc:view-controller path="/" view-name="redirect:/admin/index"/> 即如 ...