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

来源:互联网 发布:画坐标图软件 编辑:程序博客网 时间:2024/05/29 11:47

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

首先创建一个布局:

<RelativeLayout 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"    tools:context="${relativePackage}.${activityClass}" >    <android.support.v4.widget.SwipeRefreshLayout        android:id="@+id/swipe_refresh_layout"        android:layout_width="match_parent"        android:layout_height="match_parent" >        <ListView            android:id="@+id/id_listview"            android:layout_width="match_parent"            android:layout_height="match_parent" >        </ListView>    </android.support.v4.widget.SwipeRefreshLayout></RelativeLayout>

布局创建完成后,现在开始在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<String> mAdapter;private List<String> mDatas = new ArrayList<String>(Arrays.asList("Java编程思想", "C程序设计", "Android高级编程"));@Overrideprotected 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<String>(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;}};};@Overrideprotected void onDestroy() {super.onDestroy();}@Overridepublic void onRefresh() {mHandler.sendEmptyMessageDelayed(REFRESH_COMPLETED, 1000);}}

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

效果展示:




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





0 0
原创粉丝点击