在Android5.0的v4包中,Google提供了SwipeRefreshLayout控件,用来执行下拉刷新的效果。
XML:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"><android.support.v4.widget.SwipeRefreshLayoutandroid:id="@+id/refresh_layout"android:layout_width="match_parent"android:layout_height="match_parent">  //刷新控件,继承ViewGroup<FrameLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/layout_background"><android.support.v4.widget.NestedScrollViewandroid:id="@+id/nested_scroll_view"android:layout_width="match_parent"android:layout_height="match_parent"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><android.support.v7.widget.RecyclerViewandroid:id="@+id/recycler_view"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginBottom="@dimen/activity_margin_quarter"android:layout_marginTop="@dimen/activity_margin_quarter"android:fadeScrollbars="false"android:nestedScrollingEnabled="false"android:scrollbars="vertical"android:visibility="visible"tools:listitem="@layout/item_article_layout" /></LinearLayout></android.support.v4.widget.NestedScrollView></FrameLayout></android.support.v4.widget.SwipeRefreshLayout></android.support.design.widget.CoordinatorLayout>

这是一个完整的页面的XML,我们看到SwipeRefreshLayout是作为父控件,把内容全部包裹起来的。即便是包含了NestedScrollView和RecycleView,但是并不会引起滑动冲突,因为只有在滑动到最顶部并且下来动作足够明显的时候,才能触发SwipeRefreshLayout的刷新动作。

Java代码:

refreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {@Overridepublic void onRefresh() {currentPage = INDEX;presenter.getArticles(currentPage,true,true);  //下拉刷新最新的内容}});

这里实现OnRefreshListener()接口,监听刷新的动作,并且做我们业务需要做的事情。这里我们获取第一页的最新数据。

 refreshLayout.post(new Runnable() {@Overridepublic void run() {refreshLayout.setRefreshing(isloding); //停止并隐藏刷新图标}});

这里需要注意,我们在下拉刷新的时候,是有一个loading的圆圈在转动的,因此在执行完刷新动作或者出错异常的时候,都需要把loading的动作停止并且隐藏。

SwipeRefreshLayout实现下拉刷新功能相关推荐

  1. 使用Google 官方的控件SwipeRefreshLayout实现下拉刷新功能

    之前做东西的时候,经常会用到下拉刷新的功能,之前大家都在使用Github上的一个很著名的开源项目 PullToRefresh 但是,现在好消息来了,google在19.1版本的support-v4兼容 ...

  2. android官方自带下拉刷新功能

    最近想写下拉刷新功能,网上找的第三方框架最著名的pullToRefresh也早在2013年停止维护了,偶然间发现谷歌公司早已推出了自家的下拉刷新功能,位于v4包中,效果请看下图: 使用的就是andro ...

  3. Android下拉刷新完全解析,教你如何一分钟实现下拉刷新功能 (转)

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9255575 最 近项目中需要用到ListView下拉刷新的功能,一开始想图省事,在 ...

  4. Android ListView 疯狂之旅 之 《自定义下拉刷新功能的ListView》

    效果图: 一 首先创建一个类,继承ListView,编写其构造方法 public class RefreshListView extends ListView {public RefreshListV ...

  5. html5网页自动下滑,HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码...

    H5手指下滑弹出负一屏, 阻止移动端浏览器内置下拉刷新功能,具体实例代码如下所示: 默认隐藏,负一屏,手指下滑即可弹出显示,上滑隐藏 正式内容 import $ from 'jquery'; expo ...

  6. html5实现下拉刷新页面,原生js实现简单的下拉刷新功能

    前言: 我们在浏览移动端web页面的时候,经常会用到下拉刷新. 现在我们用原生的js实现这个非常简单的下拉刷新功能. (温馨提示:本文比较基础,功能也很简单.写的不好的地方,希望大神提点一二.) 一. ...

  7. Xamarin. Android实现下拉刷新功能

    PS:发现文章被其他网站或者博客抓取后发表为原创了,给图片加了个水印 下拉刷新功能在安卓和iOS中非常常见,一般实现这样的功能都是直接使用第三方的库,网上能找到很多这样的开源库.然而在Xamarin. ...

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

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/24521483 下面App基本都有下拉刷新的功能,以前基本都使用XListView ...

  9. Android使用SwipeRefreshLayout实现下拉刷新

    Android连接mysql数据库,实现下拉刷新(简易新闻 三) 关于之前的功能实现可以从制作简易新闻App导航篇中查看 首先看一下效果: 采用swipeRefreshLayout,mysql数据库来 ...

最新文章

  1. usaco Raucous Rockers(dp)
  2. 实战SSM_O2O商铺_33【商品】商品编辑之Service层的实现
  3. 深入理解Spark 2.1 Core (六):Standalone模式运行的原理与源码分析
  4. 小李飞刀:用python刷题ing....
  5. c++中union的使用,看高手们如何解释的
  6. Python入门:局部变量与全局变量2
  7. 展示面--存储学习总结于2021年
  8. 【题集】牛客网·2018年全国多校算法寒假训练营练习比赛(第二场)
  9. 树莓派---MAC下安装AndroidThings
  10. 软件设计师历年c语言算法,2021年历年软考软件设计师真题押题分析.doc
  11. golang实现微信模板消息推送
  12. DDS每个数据包和域ID大小的数据开销
  13. android 分辨率 尺寸大小,Andriod界面设计的分辨率和尺寸适配全攻略
  14. 瀑布流网站数据如何采集解决思路方法
  15. 怎样用C语言sinx的曲线长度,Javascript 绘制 sin 曲线过程附图
  16. mac如何用移动随E行连接有线网络(中国计量大学)
  17. 腾讯企业邮箱使用简单说明
  18. 从备受质疑到业绩翻盘,这家少女装品牌为何能上演“命运大逆转”?
  19. Slack设计团队告诉你市值28亿美元的秘密武器是什么
  20. C#中 MD5加密,解密

热门文章

  1. kubernetes的pod分类,网络模型以及kuberctl命令的使用
  2. HDU-1248 寒冰王座 完全背包
  3. Hdu1248 寒冰王座
  4. 辅助继电器的作用与类型 如何区分直流和交流继电器
  5. python两个小于号什么意思_python中的不等于号是什么
  6. 五种马斯洛需求理论演变
  7. MySQL、SQLServer 修改列名
  8. CRM失败了怎么办?
  9. 敏感词加解密与隐位处理
  10. 知识图谱学习笔记四(知识抽取与挖掘)