感谢原文作者:http://stormzhang.github.io/android/2014/03/29/android-swiperefreshlayout/

API doc: http://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html 1.首先须把你的support library的版本升级到19.1或更新
SwipeRefreshLayout是Google在support v4 19.1版本的library更新的一个下拉刷新组件,实现刷新效果更方便。
使用如下:
先下载android-support-v4.jar最新版本,之前的版本是没有SwipeRefreshLayout下拉刷新控件的,如果已经更新,此步骤可省略。

Android-Google自己的下拉刷新组件SwipeRefreshLayout_第1张图片

2.在xml文件中引用android.support.v4.widget.SwipeRefreshLayout控件,在里面可以放置任何一个控件,例如ListView,gridview等。

效果:

Android-Google自己的下拉刷新组件SwipeRefreshLayout_第2张图片

使用超级简单!

在layout中添加SwipeRefreshLayout

<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/swipe_container"    android:layout_width="match_parent"    android:layout_height="match_parent" >    <ScrollView        android:layout_width="match_parent"        android:layout_height="wrap_content" >        <TextView            android:id="@+id/textView1"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:gravity="center"            android:paddingTop="10dp"            android:text="@string/swipe_to_refresh"            android:textSize="20sp"            android:textStyle="bold" />    </ScrollView></android.support.v4.widget.SwipeRefreshLayout>

在Activity中使用:


tv = (TextView)findViewById(R.id.textView1);        swipeRefreshLayout = (SwipeRefreshLayout)findViewById(R.id.swipe_container);        //设置刷新时动画的颜色,可以设置4个        swipeRefreshLayout.setColorSchemeResources(android.R.color.holo_blue_light, android.R.color.holo_red_light, android.R.color.holo_orange_light, android.R.color.holo_green_light);        swipeRefreshLayout.setOnRefreshListener(new OnRefreshListener() {                        @Override            public void onRefresh() {                tv.setText("正在刷新");                // TODO Auto-generated method stub                new Handler().postDelayed(new Runnable() {                                        @Override                    public void run() {                        // TODO Auto-generated method stub                        tv.setText("刷新完成");                        swipeRefreshLayout.setRefreshing(false);                    }                }, 6000);            }        });

PS:setColorScheme()已经弃用,使用setColorSchemeResources()来设置颜色。

其中 原来的老版本的android-support-v4.jar包是横向来回闪动的进度条,而新版的android-support-v4.jar包是圆圈刷新进度条。


下拉刷新的效果,我们可以这样做:

<android.support.v4.widget.SwipeRefreshLayout        android:id="@+id/id_swipe_ly"        android:layout_width="match_parent"        android:layout_height="match_parent" >        <LinearLayout            android:layout_width="match_parent"            android:layout_height="match_parent"            android:orientation="vertical" >            <ScrollView                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:visibility="gone" >                <TextView                    android:id="@+id/tv"                    android:layout_width="match_parent"                    android:layout_height="wrap_content"                    android:gravity="center"                    android:paddingTop="10dp"                    android:text="@string/swipe_to_refresh"                    android:textSize="20sp"                    android:textStyle="bold" />            </ScrollView>            <ListView                android:id="@+id/list_lv"                android:layout_width="match_parent"                android:layout_height="match_parent" />        </LinearLayout>    </android.support.v4.widget.SwipeRefreshLayout>
而至于ListView内的更新工作就由SwipeRefreshLayout内的监听器来做,调用ListView的setAdapter方法,重新设置Adapter的方法(这里主要是说自定义Adapter时,如何进行更新)或者修改ListView的List,然后用ListView内设置的Adapter调用notifyDataSetChanged()。这样就可以更新列表了。

更多相关文章

  1. 安卓开发09:常用控件-TextView文本展示
  2. windows上 android 21.1版本ADT环境搭建
  3. Andriod使用webview控件往APP里内嵌网页
  4. Android系统信息(内存、cpu、sd卡、电量、版本)获取
  5. Android应用程序组件Content Provider的启动过程源代码分析(3)
  6. Android应用程序组件Content Provider的启动过程源代码分析(5)
  7. ANDROID PAD版本 PHONE版本 源码有什么 区别?
  8. Android各个版本API的区别

随机推荐

  1. 自学Android总结
  2. Android四大组件 - Activity的生命周期和
  3. Android自定义View(1):对话框-Dialog
  4. Android开发之OkHttp3.4.x
  5. Android(安卓)基于Zxing扫码实现(三)、从相
  6. Android底层开发之旅—蓝牙系统分析
  7. V8和JavaScriptCore在Android(安卓)Froyo
  8. 在Android上使用FFmpeg压缩视频
  9. 深刻解析 Android 的 AIDL 界面(1)
  10. Android(安卓)BLE程序在Android(安卓)10