下拉刷新之 swipeRefreshLayout

原创 2015年11月18日 22:45:06

基本原理

占坑待填

注意事项

  1. SwipeRefreshLayout 只能有一个直接子View,可能是一个ListView或一个Layout或其他需要刷新的组件。见下使用记录一
  2. setOnRefreshListener 用于监听刷新的动作。SwipeRefreshLayout 下拉,就会有刷新的效果出来,触发该监听。
  3. 如果需要一个刷新的动画,setRefreshing(true), 停: setRefreshing(false)
  4. 如果要禁用刷新动画和手势响应,ssetEnable(false), 恢复setEnable(true)
  5. SwipeRefreshLayout进度条在要刷新组件(SwipeRefreshLayout 只有一个子view,因此也在SwipeRefreshLayout顶部)的顶部

如下图两个箭头所示,SwipeRefreshLayout。当然基本都在第一个item的位置,.另外手指向下滑动时,被滚动组件并不会随之向下滑动。这一点我个人很不习惯。

Alt text

  1. SwipeRefreshLayout会强制填充整个父容器,对其设置layout_height 和 layout_width无效,如果要在当前布局中显示其他非要被刷新的组件,则需要给SwipeRefreshLayout外套一个父容器。亦或我们在adapterView内使用addHeadView来添加一个头。
  2. 还有一些设置屏幕下拉触发下拉刷新距离、圆圈背景、圆圈大小。都是可以的设置,参考android 文档
  3. 默认是不带有上拉加载的动能,后面将会完善这个功能。

使用记录

  1. 正如下方代码所示,SwipeRefreshLayout 中多添加了一个TextView,结果页面上只有一个TextView没有显示listview,
 <android.support.v4.widget.SwipeRefreshLayout
        android:id="@+id/swipe_refresh_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="textview"
            android:textSize="15sp"/>
        <ListView
            android:id="@+id/lv_swipe_volley"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            >
        </ListView>
    </android.support.v4.widget.SwipeRefreshLayout>

控件完善

修改源码实现常见的下拉箭头那种下拉效果

Android修改v4的SwipeRefreshLayout源码实现自定义下拉效果

实现上拉加载功能(分页)

ListView上拉加载更多模拟获取分页数据

数据加载优化及刷新的两级缓存

http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0606/3007.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

SwipeRefreshLayout 首次进入界面自动下拉刷新

废话不说,直入主题. 为了实现这个功能,本渣百度了一圈,找到了俩种可执行的方案.第一种//开启 SwipeRefreshLayout.post(new Runable(){ @Overr...
  • u012103141
  • u012103141
  • 2016年12月02日 10:29
  • 213

SwipeRefreshLayout 设置下拉刷新的距离高度

SwipeRefreshLayout 的下拉刷新距离比较短,有的时候,想要手动设置它的下拉刷新高度,如何解决呢?在网上找了好一会,居然没搜到比较满意的答复,好些都是复制粘贴。于是乎,求人不如求己,拿出...
  • abc6368765
  • abc6368765
  • 2016年09月16日 19:30
  • 5765

SwipeRefreshLayout实现下拉刷新

SwipeRefreshLayout是Google自己的下拉刷新控件,使用很简单,只要将SwipeRefreshLayout包裹在需要刷新的控件上就行...
  • freshxu
  • freshxu
  • 2016年06月28日 17:27
  • 720

自定义下拉刷新组件SuperSwipeRefreshLayout

本来Google推出的SwipeRefreshLayout已经能够满足大部分的需求了。然而,由于其定制性较差,下拉刷新的样式无法修改,而且被嵌套的View也无法跟随手指的滑动而滑动。基于以上考虑,定制...
  • yxrc_fendoubuzhi
  • yxrc_fendoubuzhi
  • 2016年07月09日 16:27
  • 832

google推出的SwipeRefreshLayout下拉刷新用法

SwipeRefreshLayout是Google在support v4 19.1版本的library更新的一个下拉刷新组件,实现刷新效果更方便。 使用如下: 1.先下载android-suppo...
  • easyer2012
  • easyer2012
  • 2014年04月03日 11:20
  • 30190

SuperSwipeRefreshLayout 一个功能强大的自定义下拉刷新组件

SuperSwipeRefreshLayout一个功能强大的自定义下拉刷新组件。Why?下拉刷新这种控件,想必大家用的太多了,比如使用很多的XListView等。最近,项目中很多列表都是使用Reycl...
  • NUPTboyZHB
  • NUPTboyZHB
  • 2015年08月25日 17:53
  • 6571

SwipeRefreshLayout无法下拉刷新了

1. 问题某次项目上线前,QA的妹纸忽然发现一个严重的bug,列表无法进行下拉刷新了。使用场景是当前列表数据为空,或者请求失败时,又没有加载到缓存数据的情况,EmptyView页面就无法进行下拉刷新了...
  • u011033906
  • u011033906
  • 2017年02月26日 23:36
  • 1064

重写SwipeRefreshLayout下拉刷新,避免在左右滑动时执行下拉刷新操作

重写SwipeRefreshLayout下拉刷新,避免在左右滑动时执行下拉刷新操作
  • wei11556
  • wei11556
  • 2016年09月24日 23:09
  • 734

修改源码自定义SwipeRefreshLayout样式——高仿微信朋友圈下拉刷新

通过修改源码的方法,自定义SwipeRefreshLayout样式,高仿了微信朋友圈下拉刷新。 上一篇文章里把SwipeRefreshLayout的原理简单过了一下,大致了解了其工作原理,不熟悉的可以...
  • u011443509
  • u011443509
  • 2016年07月25日 18:01
  • 10794

SwipeRefreshLayout手动显示刷新动画

简述比如说要服务器取新闻数据,界面将会一个列表形式,支持下拉刷新功能。通常做法都会在进入界面时,把下拉刷新的动画显示出来,数据获取成功后隐藏刷新动画,这样的做法很普遍。然后在Google在supper...
  • hupei
  • hupei
  • 2016年07月19日 10:18
  • 2197
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:下拉刷新之 swipeRefreshLayout
举报原因:
原因补充:

(最多只允许输入30个字)