网上关于下拉刷新的文章也不少,不过都太长了,看得挺难受的。恰好发现了官方的下拉刷新库,而且效果还是不错的,简洁美观,用得也挺方便。

下面是效果图:

我的好友原来是空的,刷新后多了两个。

使用还是挺方便的,在布局文件中加入SwipeRefreshLayout ,这个就是下拉刷新的布局。

我在SwipeRefreshLayout的里面还加入了一个ListView 因为我主要用下拉刷新更新了listView里面的内容 。

布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" > <android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/id_swipe_ly"
android:layout_width="match_parent"
android:layout_height="match_parent" > <ListView
android:id="@+id/id_listview"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</ListView>
</android.support.v4.widget.SwipeRefreshLayout> </RelativeLayout>

代码写到这里后,只要在主界面向下滑动到顶部,就会出现下拉刷新了。

然后我们要实例化这个下拉刷新布局,设置好它在刷新时要干什么,完成刷新后,旋转的图标要消失。

 mSwipeLayout = (SwipeRefreshLayout) findViewById(R.id.haoyouliebiaoshuaxin);//实例化

              //handler 用来更新UI的
haoyouhandler = new Handler(){ @Override
public void handleMessage(Message msg) {
super.handleMessage(msg); //要做的事
Item i1 = new Item();
i1.name = "呵呵";
i1.account = 25566;
haoyou.add(i1); Item i2 = new Item();
i2.name = "哈哈";
i2.account = 25577; haoyou.add(i2); haoyouadpter = new liebiaoAdapter(MainActivity.this, R.layout.liebiao, haoyou); haoyoulist.setAdapter(haoyouadpter);
                  
                  
                    //取消更新的动画
mSwipeLayout.setRefreshing(false); }
};
              
              
              //设置监听器
mSwipeLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
                //正在更新的时候执行什么代码
public void onRefresh() { new Thread(new Runnable() {
@Override
public void run() {

//等待一秒
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
                        
   //发消息给handler更新UI
Message ok = new Message();
haoyouhandler.sendMessage(ok); }
}).start();

我是在监听器的onRefresh函数中,等待一秒,然后发消息给Handler去更新UI,更新完后再取消更新。整个效果就是上图所示。

关于Handler更新UI的方法,不熟悉的可以去看看http://www.cnblogs.com/wzben/p/5055751.html

最新文章

  1. 表单验证:$tablePrefix(定义表前缀);$trueTableName = &#39;yonghu&#39;,找到真实表名(yonghu)表;create($attr,0)两个参数;批量验证(返回数组);ajax+动态验证表单
  2. uglifyjs2压缩混淆js文件
  3. 清除浮动(clearfix hack)
  4. opencv常用数据结构之:IplImage
  5. hibernate建表一对多 一的一方控制多的方
  6. HDU 4675 GCD of Sequence(容斥)
  7. centos nginx和tomcat 通过反向代理生成想要的nexus网址
  8. 测试最新的log4cplus1.1.2版
  9. BetWeen和模糊查询
  10. ExtJS4.2学习(11)——高级组件之Grid
  11. Unity position和localposition
  12. android 视频播放器的INTENT-FILTER属性
  13. [补档]暑假集训D1总结
  14. (转)Spring Boot 2 (三):Spring Boot 开源软件都有哪些?
  15. Express学习 ------模版引擎(handlebars)
  16. Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第十一集之安装FastDFS】
  17. spring引入HikariCP连接池
  18. 【EatBook】-NO.1.EatBook.1.JavaData.1.001-《JSON 必知必会-Introduction to JavaScript Object Notation》-
  19. 【转】基于Token的WEB后台认证机制
  20. Qt编译出错:“Cannot find file...... .pro.&quot;

热门文章

  1. 【河南第十届省赛-B】情报传递
  2. Flask中的ORM使用
  3. matlab将矩阵写入文件
  4. ng 服务
  5. Ubuntu+Rmarkdown的中文slides实现(附GitHub template)
  6. Sphinx 匹配模式
  7. Shell 参数(2) --解析命令行参数工具:getopts/getopt
  8. LeetCode Delete Operation for Two Strings
  9. javascript:;与javascript:void(0)
  10. ArcGIS_Lisence安装步骤