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

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

代码工程简要说明:以一个SwipeRefreshLayout包裹ListView,SwipeRefreshLayout接管ListView的下拉事件,若ListView被用户触发下拉动作后,SwipeRefreshLayout启动下拉刷新的UI表现样式,下拉刷新完毕,在SwipeRefreshLayout提供的接口中回调更新ListView中的数据。

如图:

全部代码:

MainActivity.java,用于测试的主Activity

package zhangphil.swiperefreshlayout;

import java.util.ArrayList;

import android.support.v4.widget.SwipeRefreshLayout;

import android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener;

import android.support.v7.app.ActionBarActivity;

import android.os.Bundle;

import android.widget.ArrayAdapter;

import android.widget.ListView;

public class MainActivity extends ActionBarActivity {

private SwipeRefreshLayout swipeRefreshLayout;

private int count = 0;

private ArrayList data = new ArrayList();

private ArrayAdapter adapter;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipeRefreshLayout);

ListView listView = (ListView) findViewById(R.id.listView);

// 设置刷新动画的颜色,可以设置1或者更多.

// 我们暂时使用三个Android系统自带的颜色。

swipeRefreshLayout.setColorSchemeResources(

android.R.color.holo_blue_bright,

android.R.color.holo_orange_light,

android.R.color.holo_green_light);

swipeRefreshLayout.setOnRefreshListener(new OnRefreshListener() {

// SwipeRefreshLayout接管其包裹的ListView下拉事件。

// 每一次对ListView的下拉动作,将触发SwipeRefreshLayout的onRefresh()。

@Override

public void onRefresh() {

longTimeOperation();

}

});

// 使用Android系统自带的一个简单TextView布局文件android.R.layout.simple_list_item_1显示我们的额数据内容。

adapter = new ArrayAdapter(this,

android.R.layout.simple_list_item_1, data);

listView.setAdapter(adapter);

}

// 每一次下拉刷新将触发更新操作动作。

// 这里将是比较耗时的操作:如网络请求的数据,加载一个大图片。

// 简单期间,我们假设就是简单的将count数据加1,然后更新显示。

//

// 备注:swipeRefreshLayout.setRefreshing(true) 到

// swipeRefreshLayout.setRefreshing(false)之间的这段代码 ,

// 在实际的应用开发中一般就是线程化的、耗时的或者后台的操作代码。

private void longTimeOperation() {

// true,刷新开始,所以启动刷新的UI样式.

swipeRefreshLayout.setRefreshing(true);

// 开始启动刷新...

// 在这儿放耗时操作的 AsyncTask线程、后台Service等代码。

// add(0,xxx)每次将更新的数据xxx添加到头部。

data.add(0, "" + count++);

adapter.notifyDataSetChanged();

// 刷新完毕.

// false,刷新完成,因此停止UI的刷新表现样式。

swipeRefreshLayout.setRefreshing(false);

}

}

MainActivity需要的布局文件activity_main.xml,里面有SwipeRefreshLayout和ListView的写法。

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

android:id="@+id/swipeRefreshLayout"

android:layout_width="match_parent"

android:layout_height="match_parent" >

android:id="@+id/listView"

android:layout_width="match_parent"

android:layout_height="match_parent" >

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

原文:http://blog.csdn.net/zhangphil/article/details/46965377

谷歌的android下拉刷新页面,Android SwipeRefreshLayout:谷歌官方SDK包中的下拉刷新相关推荐

  1. android webview 下拉刷新页面,Android 下拉刷新控件SwipeRefreshLayout结合WebView使用

    SwipeRefreshLayout 是谷歌官方下拉刷新控件,4.0如下的版本须要用到 android-support-v4.jar包才能用到html android-support-v4.jar 包 ...

  2. android代码下拉刷新页面,Android下拉刷新的实现

    ListView下拉刷新实现方式分析 1.添加顶部下拉加载界面. 2.监听onScrollListener,来判断当前是否在ListView最顶部. 3.监听onTouch事件,根据手势变化改变当前状 ...

  3. android高仿微信下拉有页面,Android——(仿微信聊天界面布局实例)

    今天看郭霖<第一行代码>书上写了一个聊天窗体的小例子,自己就练习学了一下.加上一些自己的理解整理了一下. 1.第一步首先是制作9.patch图片,这个在android  sdk 目录下to ...

  4. vue中tab选项卡刷新页面后保持选中状态_Altium Designer中的快捷键汇总

    双十一活动详情请联系客服了解 在任何软件环境中,为了提高工作效率,你可以做的一件事就是学习快捷键.击键比将鼠标小心地放在按钮上或点击菜单来查找命令更有效,一旦用熟悉了,它们就变成了您的第二天性.本文将 ...

  5. webpack高级运用,historyApiFallback(解决history,h5路由,方式刷新页面可能会报错),output中添加publicPath(公共路径)任意找不到的路径都会去访问/等等

    webpack高级应用篇: source-map: 提升开发效率与完善团队开发规范 development环境里配置devtool就可以开启webpackk-source-map(webpack中已经 ...

  6. 无闪烁刷新页面 php,AJAX_Ajax实现无闪烁定时刷新页面实例代码,在Web开发中我们经常需要实现 - phpStudy...

    Ajax实现无闪烁定时刷新页面实例代码 在Web开发中我们经常需要实现定时刷新某个页面: 1.来保持session的值或者检查session的值是否为空(比如说防止同一用户重复登录): 2.实现实时站 ...

  7. python基于django框架下读代码——页面元素和数据元素在代码中的位置查找

    Python+django写的集成版本自动打包发布,用户意见禅道问题收集的项目 本篇的主要目的是: 1.**页面元素查询:**查找网页中"构建"部分代码所在位置 2.**数据信息查 ...

  8. mysql获取下一条自增的id_mysql获取一个表中的下一个自增(id)值的方法

    mysql获取一个表中的下一个自增(id)值的方法 MySQL: Get next AUTO_INCREMENT value from/for table Note to self: To get t ...

  9. mysql下划线几个字符_如何匹配MySQL字符串中的下划线?

    要匹配MySQL字符串中的下划线,可以使用以下语法-select *from yourTableName where yourColumnName LIKE '%\_%'; 让我们首先创建一个表-my ...

最新文章

  1. UVA1108 Mining Your Own Business(思维、割点)(2011 ICPC - WorldFinal)
  2. 用leangoo怎么做迭代管理?(Sprint Backlog、任务看板、燃尽图)
  3. js基础篇——localStorage使用要点
  4. 【Android 逆向】Android 进程注入工具开发 ( 总结 | 源码编译 | 逆向环境搭建使用 | 使用进程注入工具进行逆向操作 ) ★★★
  5. JZOJ 3870. 【NOIP2014八校联考第4场第1试10.19】单词检索(search)
  6. keycloak 调研资料
  7. Java单例模式(Singleton)的五种实现
  8. linux+++乘法口诀_Shell的九九乘法口诀
  9. Python的Django框架中forms表单类的使用方法详解
  10. android操作系统+流量,为什么我的安卓操作系统走这么多流量?
  11. 95-35-010-Topic-Topic 删除 源码解析
  12. java船_Java-货船
  13. Java中的可变参数使用
  14. java jsp实验设计心得_jsp课程设计心得_课程设计总结心得
  15. 关于word2010指定位置插入页码及三线表格绘制问题
  16. python + selenium 自动化测试框架
  17. 百度GOALS比赛总结
  18. 量化分析(6)——K线图、交易量图、动量图、rsi强度图
  19. tornado完成一个简单的登录界面/图片的上传
  20. css 会飞的蝴蝶,CSS3怎么制作蝴蝶飞舞的动画

热门文章

  1. 软件工程白盒测试的流图怎么画_功能安全理论 | 黑盒 与 白盒
  2. 是什么动词_【术语攻略】什么是及物动词?
  3. linux 有线网卡,linux下有线网卡出现ADDRCONF(NETDEV_UP): eth0: link is not ready的解决方法...
  4. filter java 是单例的吗_JAVA 设计模式之 单例模式详解
  5. 皮一皮:这是。。。养了个白眼狼???
  6. 一个被 CEO 逼疯的技术负责人的检讨书
  7. Spring Cloud Stream同一通道根据消息内容分发不同的消费逻辑
  8. python第七关再来一盘_Python爬虫自学系列(七) — 项目实战篇(一)
  9. 计算机主机电池,为什么电脑主机板上面有电池?很多人可能根本不知道
  10. l2_norm opencv torch比较