Android SwipeRefreshLayout

SwipeRefreshLayout字面意思就是下拉刷新的布局,继承自ViewGroup,在support v4兼容包下,但必须把你的support library的版本升级到19.1。 提到下拉刷新大家一定对ActionBarPullToRefresh比较熟悉,而如今google推出了更官方的下拉刷新组件,这无疑是对开发者来说比较好的消息。利用这个组件可以很方便的实现Google Now的刷新效果,见下图:

主要方法

  • setOnRefreshListener(OnRefreshListener): 为布局添加一个Listener
  • setRefreshing(boolean): 显示或隐藏刷新进度条
  • isRefreshing(): 检查是否处于刷新状态
  • setColorScheme(): 设置进度条的颜色主题,最多能设置四种

xml布局文件

布局文件很简单,只需要在最外层加上SwipeRefreshLayout,然后他的child是可滚动的view即可,如ScrollView或者ListView。如:

<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="match_parent">   
                
    <TextView             
        android:text="@string/hello_world"             
        android:layout_width="match_parent"             
        android:layout_height="wrap_content"             
        android:layout_marginTop="16dp"             
        android:gravity="center"/>     
    </ScrollView>   
    
</android.support.v4.widget.SwipeRefreshLayout>

Activity代码

 protected void onCreate(Bundle savedInstanceState) {     
    super.onCreate(savedInstanceState);     
    setContentView(R.layout.activity_main);       
    swipeLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_container);     
    swipeLayout.setOnRefreshListener(this);     
    swipeLayout.setColorScheme(android.R.color.holo_blue_bright,
                         android.R.color.holo_green_light,
                         android.R.color.holo_orange_light,
                         android.R.color.holo_red_light); 
}   
 public void onRefresh() {     
        new Handler().postDelayed(new Runnable() {         
            @Override public void run() {             
                swipeLayout.setRefreshing(false);         
        }    
    }, 5000); 
}

上面的代码很简单,只需要给SwipeRefreshLayout添加一个listener,值得说明的是setColorScheme方法是设置刷新进度条的颜色,最多只能设置4种循环显示,默认第一个是随用户手势加载的颜色进度条。

源码

写了的小demo在github上,地址在:SwipeRefreshLayoutDemo

总结

google在不断完善自己的sdk,推出越来越多的组件,其目的是让开发更简单,设计上更统一,这可能是google未来的方向,不管怎样,这对开发者来说无疑是非常好的消息。

时间: 2024-08-08 04:55:53

Android SwipeRefreshLayout的相关文章

Android SwipeRefreshLayout:谷歌官方SDK包中的下拉刷新

 <Android SwipeRefreshLayout:谷歌官方SDK包中的下拉刷新> 下拉刷新在如今移动开发中应用如此广泛和普遍,以至于谷歌干脆在SDK中给予支持.在android-support-v4包中,谷歌增加了SwipeRefreshLayout,该组件提供基础的下拉刷新表现能力和开放出来供开发者调用的基本接口.现在给出一个简单的代码例子加以说明. 代码工程简要说明:以一个SwipeRefreshLayout包裹ListView,SwipeRefreshLayout接管List

使用Android SwipeRefreshLayout了解Android的嵌套滑动机制

SwipeRefreshLayout 是在Android Support Library, revision 19.1.0添加到support v4库中的一个下拉刷新控件,关于android的下拉刷新框架现在有好多,曾经用过XListView,现在工作中基本上无需用到下拉刷新的功能.废话不多说了,这里来记录一下android自带的刷新控件SwipeRefreshLayout的使用,借此顺便来熟悉一下android 在Lollipop版本推出的嵌套滑动机制(NestedScrolling). 首先

Android SwipeRefreshLayout 官方下拉刷新控件介绍—Handler原理—Adapter总结

參考博客:http://blog.csdn.net/lmj623565791/article/details/24521483 自己敲了下代码,这个方式刷新确实给人耳目一新的感觉.资源:含有两个SwipeRefreshLayout实战的Demo,http://download.csdn.net/detail/itjavawfc/8847339 用起来很好用:看看文档几个重要的方法,简单拿来用没有不论什么问题. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZX

Android --SwipeRefreshLayout 下拉刷新

1.Layout <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/id_swipe_ly" android:layout_width="match_parent" android:layout_height="match_parent" > <com.github.mikephil.charting.charts.LineChart android:i

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

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/24521483 以下App基本都有下拉刷新的功能,曾经基本都使用XListView或者自己写一个下拉刷新,最近Google提供了一个官方的下拉刷新控件SwipeRefreshLayout,我感觉还不错啊,见惯了传统的下拉刷新,这个反而给人耳目一新的感觉(貌似知乎的APP已经使用这样的下拉刷新了). Google也在官方站点给出了V4的兼容包: 顺便看一眼API呗: 和XlistV

Android SwipeRefreshLayout下拉刷新控件源码简单分析

咱们在做Android APP开发的时候经常碰到有下拉刷新和上拉加载跟多的需求,这篇文章咱们先说说下来刷新,咱们就以google的原生的下拉刷新控件SwipeRefreshLayout来看看大概的实现过程. SwipeRefreshLayout是google自己推出的下拉刷新控件.使用起来也非常的简单,在满足条件的情况下下拉的时候会显示一个圆形的loading的动画效果,然后回调到上层,上层自己做刷新的一系列的处理,处理结束后调用SwipeRefreshLayout的setRefreshing(

解决Android SwipeRefreshLayout &amp; RecyclerView使用的Bug

1.引言 用Android提供的support包里的SwipeRefreshLayout和RecyclerView同时使用的时候会出现RecyclerView的item被裁剪的情况,如下图所示: 2.解决此Bug的方法 参考资料如下: http://stackoverflow.com/questions/25178329/recyclerview-and-swiperefreshlayout/25227797#25227797 https://gist.github.com/VladSumtso

Android原生下拉刷新SwipeRefreshLayout实践

本篇文章翻译自Ravi Tamada的Android Swipe Down to Refresh ListView Tutorial 首先来看一下效果图 你应该发现许多的android app例如Twitter,Google+都提供了一个下拉刷新数据的功能,只要用户从上往下滑动,新的内容就会加载出来,这篇文章我们将学习如何开发出同样的功能. 1.Android SwipeRefreshLayout 实现SwipeRefreshLayout非常容易,我们将SwipeRefreshLayout作为根

Android ListView下拉/上拉刷新:设计原理与实现

 <Android ListView下拉/上拉刷新:设计原理与实现> Android上ListView的第三方开源的下拉刷新框架很多,应用场景很多很普遍,几乎成为现在APP的通用设计典范,甚至谷歌官方都索性在Android SDK层面支持下拉刷新,我之前写了一篇文章<Android SwipeRefreshLayout:谷歌官方SDK包中的下拉刷新>专门介绍过(链接地址:http://blog.csdn.net/zhangphil/article/details/4696537