Android日志:Google官方下拉刷新控件

近期项目比较赶,所以没什么时间写博客,觉得自己新的知识了解的太少.偶尔一次逛帖子,看到Google新出了下拉刷新的空间,觉得挺有意思的,自己就试着做了一个Demo,效果是真是不错.下面就来分享一下.

首先,必须说明的是,这个控件只需要下载较新的api,至少是19,由于是额外的jar包,所以向下兼容各个Android版本.之前的效果是顶部一条线条,更新了SDK后现在变成了转圈的,用法不变.

主文件:

public class MainActivity extends ActionBarActivity {
	private SwipeRefreshLayout refreshLayout;
	 private GridView gv;
	private MyAdapter adapter;
	private ArrayList<String> mDatas;
//	private ListView lv;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		initview();
	}

	/**
	 * 初始化数据
	 */
	private void initData() {
		mDatas = new ArrayList<String>();
		for (int i = 0; i < 10; i++) {
			mDatas.add("第" + i + "条数据");
		}

	}

	private void initview() {
		refreshLayout = (SwipeRefreshLayout) findViewById(R.id.swiperefresh);
		 gv = (GridView) findViewById(R.id.gv);
//		lv = (ListView) findViewById(R.id.lv);
		 gv.setNumColumns(3);
		mDatas = new ArrayList<>();
		initData();
		adapter = new MyAdapter();
		 gv.setAdapter(adapter);
//		lv.setAdapter(adapter);

		// 设置加载动画的颜色
		/**
		 * (int colorRes1 滑动的时候伸缩的颜色, int 第二个颜色, int 第三个颜色, int 第四个颜色)
		 * 这边处理顺序是界面上刷新跳显示颜色的顺序
		 */
		refreshLayout.setColorSchemeResources(android.R.color.holo_blue_bright,
				android.R.color.holo_red_light,
				android.R.color.holo_green_light,
				android.R.color.holo_orange_light);
		refreshLayout.setOnRefreshListener(new OnRefreshListener() {

			@Override
			public void onRefresh() {
				// 这里处理刷新的事件,看自己的项目来说,一般用异步加载数据,
				new MyAsyncTask().execute("");
			}
		});
	}

	/**
	 * 异步加载数据
	 * 
	 * @author think
	 * 
	 */
	private class MyAsyncTask extends AsyncTask<String, String, Boolean> {

		@Override
		protected void onPreExecute() {
			super.onPreExecute();
		}

		@Override
		protected Boolean doInBackground(String... params) {
			// 异步加载数据
			// 例:lv添加一条数据
			mDatas.add("新的一条数据");
			// 为了模拟真实情况我们将sleep 2秒时间
			SystemClock.sleep(2000);
			return true;
		}

		@Override
		protected void onPostExecute(Boolean result) {
			super.onPostExecute(result);
			if (result) {
				adapter.notifyDataSetChanged();
				// 停止swipeRefreshLayout刷新
				refreshLayout.setRefreshing(false);
			}
		}

	}

	/**
	 * 填充数据
	 * 
	 * @author think
	 * 
	 */
	private class MyAdapter extends BaseAdapter {

		private TextView mTv;

		@Override
		public int getCount() {
			return mDatas.size();
		}

		@Override
		public Object getItem(int position) {
			return mDatas.get(position);
		}

		@Override
		public long getItemId(int position) {
			return position;
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			convertView = LayoutInflater.from(MainActivity.this).inflate(
					R.layout.item, parent, false);
			String data = mDatas.get(position);
			mTv = (TextView) convertView.findViewById(R.id.tv);
			mTv.setText(data);
			return convertView;
		}

	}

}

布局非常简单:

<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/swiperefresh"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <GridView
        android:id="@+id/gv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:horizontalSpacing="1dp"
        android:padding="20dp" />

    <!--
         <ListView
        android:id="@+id/lv"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />
    -->

</android.support.v4.widget.SwipeRefreshLayout>
时间: 2024-10-09 05:41:32

Android日志:Google官方下拉刷新控件的相关文章

SwipeRefreshLayout -- Google官方&quot;下拉刷新&quot;控件

主要方法: 设置刷新简体器: setOnRefreshListener() --> SwipeRefreshLayout.OnRefreshListener 1. isRefreshing() 2. setColorSchema() 3. onRefresh() 1. Layout - activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xm

【转】Android官方下拉刷新控件 SwipeRefreshLayout

今天在Google+上看到了SwipeRefreshLayout这个名词,遂搜索了下,发现竟然是刚刚google更新sdk新增加的一个widget,于是赶紧抢先体验学习下. SwipeRefreshLayout SwipeRefreshLayout字面意思就是下拉刷新的布局,继承自ViewGroup,在support v4兼容包下,但必须把你的support library的版本升级到19.1. 提到下拉刷新大家一定对ActionBarPullToRefresh比较熟悉,而如今google推出了

Android——谷歌官方下拉刷新控件SwipeRefreshLayout(转)

转自:http://blog.csdn.net/zouzhigang96/article/details/50476402 版权声明:本文为博主原创文章,未经博主允许不得转载. 前言: 如今谷歌推出了更官方的下拉刷新控件, 这无疑是对安卓开发人员来说是个好消息,很方便的使用这个SwipeRefreshLayout控件实现下拉刷新功能.Android4.0以下的版本需要用到 Android-support-v4.jar包才能用到 android-support-v4.jar 包下载地址:http:

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

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

android官方下拉刷新控件SwipeRefreshLayout的使用

可能开发安卓的人大多数都用过很多下拉刷新的开源组件,但是今天用了官方v4支持包的SwipeRefreshLayout觉得效果也蛮不错的,特拿出来分享. 简介:SwipeRefreshLayout组件只接受一个子组件:即需要刷新的那个组件.它使用一个侦听机制来通知拥有该组件的监听器有刷新事件发生,换句话说我们的Activity必须实现通知的接口.该Activity负责处理事件刷新和刷新相应的视图.一旦监听者接收到该事件,就决定了刷新过程中应处理的地方.如果要展示一个“刷新动画”,它必须调用setR

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结合WebView使用

SwipeRefreshLayout 是谷歌官方下拉刷新控件,4.0以下的版本需要用到  android-support-v4.jar包才能用到 android-support-v4.jar 包下载地址:http://download.csdn.net/detail/h7870181/7784247 官网API地址:https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html G

Android下拉刷新控件SwipeRefreshLayout源码浅析

SwipeRefreshLayout是Android官方的下拉刷新控件,使用简单,界面美观,不熟悉的朋友可以随便搜索了解一下,这里就不废话了,直接进入正题. 这种下拉刷新控件的原理不难,基本就是监听手指的运动,获取手指的坐标,通过计算判断出是哪种操作,然后就是回调相应的接口了.SwipeRefreshLayout是继承自ViewGroup的,根据Android的事件分发机制,触摸事件应该是先传递到ViewGroup,根据onInterceptTouchEvent的返回值决定是否拦截事件的,那么就

Android下拉刷新控件--PullToRefresh的简单使用

Android中很多时候都会用到上下拉刷新,这是一个很常用的功能,Android的v4包中也为我们提供了一种原生的下拉刷新控件--SwipeRefreshLayout,可以用它实现一个简洁的刷新效果,但今天我们的主角并不是它,而是一个很火的第三方的上下拉刷新控件--PullToRefresh.PullToRefresh包括PullToRefreshScrollView.PullToRefreshListView.PullToRefreshGridView等等很多为我们提供的控件,我们可以在xml