今天在Google+上看到了SwipeRefreshLayout这个名词,遂搜索了下,发现竟然是刚刚google更新sdk新增加的一个widget,于是赶紧抢先体验学习下。

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。如:
  1. <android.support.v4.widget.SwipeRefreshLayout
  2. xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:id="@+id/swipe_container"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent">
  6. <ScrollView
  7. android:layout_width="match_parent"
  8. android:layout_height="match_parent">
  9. <TextView
  10. android:text="@string/hello_world"
  11. android:layout_width="match_parent"
  12. android:layout_height="wrap_content"
  13. android:layout_marginTop="16dp"
  14. android:gravity="center"/>
  15. </ScrollView>
  16. </android.support.v4.widget.SwipeRefreshLayout>

复制代码

Activity代码

  1. protected void onCreate(Bundle savedInstanceState) {
  2. super.onCreate(savedInstanceState);
  3. setContentView(R.layout.activity_main);
  4. swipeLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_container);
  5. swipeLayout.setOnRefreshListener(this);
  6. swipeLayout.setColorScheme(android.R.color.holo_blue_bright,
  7. android.R.color.holo_green_light,
  8. android.R.color.holo_orange_light,
  9. android.R.color.holo_red_light);
  10. }
  11. public void onRefresh() {
  12. new Handler().postDelayed(new Runnable() {
  13. [url=home.php?mod=space&uid=389554]@Override[/url] public void run() {
  14. swipeLayout.setRefreshing(false);
  15. }
  16. }, 5000);
  17. }

复制代码

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

源码

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

总结

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

转载于:https://www.cnblogs.com/xiaochao1234/p/3644998.html

Google官方下拉刷新组件---SwipeRefreshLayout相关推荐

  1. android google 下拉刷新 csdn,android SwipeRefreshLayout google官方下拉刷新控件

    下拉刷新功能之前一直使用的是XlistView很方便我前面的博客有介绍 SwipeRefreshLayout是google官方推出的下拉刷新控件使用方法也比较简单 今天就来使用下SwipeRefres ...

  2. swift添加下拉刷新_React Native自定义下拉刷新组件

    React Native 自定义下拉刷新组件 PullToRefresh 针对猴急一些的同学,可以先在这个 Expo网站在线运行下demo看看效果 . 完整的代码,在 Github仓库 . 下拉刷新, ...

  3. php mescroll,mescroll.js上拉加载下拉刷新组件使用详解

    本文实例为大家分享了上拉加载下拉刷新组件mescroll.js的具体代码,供大家参考,具体内容如下 使用注意事项: 1.引入的时候出问题及时看官方给出的解决方案(基本上都必须看): 2.react中一 ...

  4. 【Flutter】ListView 列表高级功能 ( RefreshIndicator 下拉刷新组件 )

    文章目录 一.下拉刷新组件 二.下拉刷新代码示例 三.相关资源 一.下拉刷新组件 使用 Flutter 提供的 RefreshIndicator 组件 , 可以实现下拉刷新的功能 ; 使用 Refre ...

  5. android下拉刷新动画效果代码_vue项目实录:下拉刷新组件的开发及slot的使用

    "下拉刷新"和"上滑加载更多"功能在前端.尤其是移动端项目中非常重要,这里笔者由曾经做过的vue项目中的"blink"功能和各位探讨下[下拉 ...

  6. Mint-ui中loadmore(上拉加载下拉刷新)组件在ios中滑动会触发点击事件的解决方法...

    bug说明: Mint-ui中loadmore(上拉加载下拉刷新)组件 在 使用fastclick的情况下 ,在ios设备中滑动会触发点击事件: 解决方法: 我是按需引入,去项目中找到loadmore ...

  7. Flutter RefreshIndicator 下拉刷新组件 Material 风格的刷新效果

    题记 -- 优美的应用体验 来自于细节的处理,更源自于码农的自我要求与努力,当然也需要码农年轻灵活的思维. 盘点Flutter跨平台APP开发中使用到的进度条 Flutter是谷歌推出的最新的移动开发 ...

  8. Android开发笔记(一百二十三)下拉刷新布局SwipeRefreshLayout

    SwipeRefreshLayout 下拉刷新布局SwipeRefreshLayout是Android又一与时俱进的控件,顾名思义它随着用户手势向下滑动就会触发刷新操作.从实际的下拉效果来看,Swip ...

  9. [ vant ] vue移动端下拉刷新组件

    学习关键语句: vant list组件和下拉刷新 vant 下拉刷新和局部滚动冲突 写在前面 每一次 ! 我是说每一次我在使用 vant 组件库里面 list组件和下拉刷新连在一起用的时候 都会出现下 ...

最新文章

  1. 第十五届全国大学生智能汽车竞赛华北赛区比赛
  2. 用verilog表示两个4x4矩阵的乘法运算?及单个矩阵的求逆
  3. 数据挖掘 —— 半监督学习(标签传播算法)
  4. mysql-练习的数据准备
  5. js 难点之call,apply实现
  6. 2016022604 - redis命令介绍
  7. 超酷网页 Message Box 样式集合
  8. SpringBoot非官方教程 | 第二十二篇: 创建含有多module的springboot工程
  9. 个人地理数据库与文件地理数据库的区别
  10. 软件开发模型2:增量模型/螺旋模型/敏捷模型
  11. 国产WMS仓库管理系统排名
  12. 引入阿里iconfont图标方法以及注意事项
  13. Java根据isbn查询图书信息_图书ISBN查询
  14. MATLAB/Simulink仿真 并网型风光混储直流微电网 实现:功率分配、削峰填谷、平抑功率波
  15. 自己动手搭建网站:域名和云服务器选购
  16. 【Office】新建的EXCEL打不开,而存在的EXCEL能打开
  17. 工业物联网有什么特征
  18. 计算机如何用蓝牙实现文件传输,Win10系统电脑通过蓝牙进行传输文件操作步骤...
  19. python+selenium 自动定时发QQ说说
  20. 网页.css的文件的写法

热门文章

  1. stm32机器学习_STM32机器学习开发实战
  2. Review学生作业管理系统
  3. 使用springboot发送带附件邮件(465端口加密邮件)
  4. c语言编写二次方程求根程序,一元二次方程求解程序完整代码
  5. php foreach next,foreach next 操作数组指针移动问题,多个数连加,连除,连减,连乘php版本...
  6. android画廊效果的轮播图,轮播图(3d画廊效果)
  7. python读取txt行问题
  8. 15.泡菜:pickle模块
  9. Java Annotation的RetentionPolicy介绍
  10. Quartz 入门详解