Android开发之Android自带的下拉刷新控件SwipeRefreshLayout

相信各位在Android日常开发中常常会用到下拉刷新的控件,然后Android API中好像没后自带的下拉刷新控件。每次要么是自己写一个自定义的下拉刷新控件,要么采用第三方的控件。其实都很麻烦。Google的Android工程师们也意识到了这一点,所以在Android API 19后就把SwipeRefreshLayout放到了v4包里面。今天就介绍一下这个控件的用法。

首先创建一个布局:



    

        
        
    



布局创建完成后,现在开始在Activity中进行渲染

MainActivity

package com.elven.swiperefreshlayout;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends Activity implements OnRefreshListener {

	private static final int REFRESH_COMPLETED = 20160412;
	private SwipeRefreshLayout mSwipeLayout;
	private ListView mListView;
	private ArrayAdapter mAdapter;
	private List mDatas = new ArrayList(Arrays.asList("Java编程思想", "C程序设计", "Android高级编程"));

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		mListView = (ListView) findViewById(R.id.id_listview);
		mSwipeLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh_layout);

		mSwipeLayout.setOnRefreshListener(this);
		mSwipeLayout.setColorSchemeResources(android.R.color.holo_orange_light, android.R.color.holo_green_light,
				android.R.color.holo_green_dark, android.R.color.holo_red_light);
		mAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, mDatas);
		mListView.setAdapter(mAdapter);
	}

	@SuppressLint("HandlerLeak")
	private Handler mHandler = new Handler() {
		public void handleMessage(android.os.Message msg) {
			switch (msg.what) {
			case REFRESH_COMPLETED:
				mDatas.addAll(Arrays.asList("C++开发技术", "Python编程", "GO语言的魅力"));
				mAdapter.notifyDataSetChanged();
				mSwipeLayout.setRefreshing(false);
				break;

			}
		};
	};

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

	@Override
	public void onRefresh() {
		mHandler.sendEmptyMessageDelayed(REFRESH_COMPLETED, 1000);
	}
}

以上代码即可实现下拉刷新的效果,特别简单。

效果展示:

Android开发之Android自带的下拉刷新控件SwipeRefreshLayout_第1张图片



Demo下载地址:http://download.csdn.net/detail/loveyaozu/9488457





你可能感兴趣的:(Android,Android技术探索)