Android 使用官方下拉刷新

摘要:
网上有很多关于下拉刷新的文章,但太长了,很难看到。我偶然发现了官方的下拉刷新库,效果不错,简单美观,使用起来非常方便。这是效果图:我的朋友是空的,但在刷新后还有两个。使用起来很方便。将SwipeRefreshLayout添加到布局文件中。这是下拉刷新的布局。我还向SwipeRefreshLayout添加了ListView,因为我主要使用下拉刷新来更新

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

下面是效果图:

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

Android 使用官方下拉刷新第1张

使用还是挺方便的,在布局文件中加入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

免责声明:文章转载自《Android 使用官方下拉刷新》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇随机信号的傅里叶分析js压缩 uglify(2)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Handler处理长时间事件

当我们在处理一些比较长时间的事件时候,比如读取网络或者数据库的数据时候,就要用到Handler,有时候为了不影响用户操作应用的流畅还要开多一个线程来区别UI线程,在新的线程里面处理长时间的操作。开发的时候遇到数据处理都可以这样用handler,灵活修改一下就可以做各种效果了。 第一步:ProgressDialog弹出旋转框来提示长时间操作。 第二步:开多一...

用js判断页面刷新或关闭的方法

onbeforeunload与onunload事件 Onunload,onbeforeunload都是在刷新或关闭时调用,可以在<script>脚本中通过window.onunload来指定或者在<body>里指定。区别在于onbeforeunload在onunload之前执行,它还可以阻止onunload的执行。 Onbefor...

Android使用WebView的简单使用

layout下 : webviewdemo.xml 文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_pa...

android为什么不允许新开启一个线程来更新UI,而是用handler来更新界面

下面是快速创建一个新线程的方法: 第一种:直接创建子线程并启动new Thread() {@Overridepublic void run() {//这里写入子线程需要做的工作}}.start();第二种:先创建子线程,然后启动private Thread newThread; //声明一个子线程newThread = new Thread(new Run...

【Python】logging模块学习笔记

因为做接口自动化测试遇到的一个代码逻辑上的问题,又不知道具体问题出在哪里,所以在模块化代码之前,先学习下python的日志模块logging。 入门1 入门2 日志级别大小关系为:CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET,也可以自己定义级别。 * handler:将日...

关于JavaScriptInterface的一系列问题

先明确主题,主要做了什么。 接手时app主体是混合开发,以elipse+android SDK为开发环境,但我是个渣渣,我只会用AS,就转成了AS,这部分等会新开文章写。 主要的view只有一个activity_main,里边写了个webview,在mainactivity里去掉了actionbar,一个导入库都没有有四个jar包,然后所有的HTML代码放...