谷歌官方两种下拉刷新样式SwipeRefreshLayout(横线样式、圆圈样式)

下拉刷新经常会用到,谷歌官方也推出了自己的下拉刷新控件SwipeRefreshLayout,使用也非常简单。直接在Listview,Gridview等外层嵌套android.support.v4.widget.SwipeRefreshLayout即可。需要注意的是要导入兼容的v7,v4包。


谷歌最新下拉刷新控件样式由原来的横线样式变成了圆圈样式,而且下拉时页面不再向下滑动。个人感觉比以前还是好看些,效果图:

1.旧版下拉刷新横线样式:


2.新版下拉刷新圆圈样式:


两种效果的代码完全相同,不同的只是兼容的v7,v4包,只需下载最新的v7兼容包就可以实现圆圈样式的下拉刷新。

后面会附上最新v7包下载地址。


布局界面:

[html]  view plain  copy
  1. <android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     xmlns:tools="http://schemas.android.com/tools"  
  3.     android:id="@+id/swipeRefreshLayout"  
  4.     android:layout_width="match_parent"  
  5.     android:layout_height="match_parent"  
  6.     android:orientation="vertical" >  
  7.   
  8.     <ListView  
  9.         android:id="@+id/listview"  
  10.         android:layout_width="match_parent"  
  11.         android:layout_height="match_parent">  
  12.     </ListView>  
  13.   
  14. </android.support.v4.widget.SwipeRefreshLayout>  

MainActivity代码:

[java]  view plain  copy
  1. package com.example.swiperefreshdemo;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.List;  
  5. import java.util.Random;  
  6.   
  7. import android.app.Activity;  
  8. import android.os.Bundle;  
  9. import android.os.Handler;  
  10. import android.support.v4.widget.SwipeRefreshLayout;  
  11. import android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener;  
  12. import android.widget.ArrayAdapter;  
  13. import android.widget.ListView;  
  14.   
  15. public class MainActivity extends Activity {  
  16.     private SwipeRefreshLayout swipeRefreshLayout;  
  17.     private ListView listView;  
  18.     private List<String> data;  
  19.     private ArrayAdapter<String> adapter;  
  20.   
  21.     @Override  
  22.     protected void onCreate(Bundle savedInstanceState) {  
  23.         super.onCreate(savedInstanceState);  
  24.         setContentView(R.layout.activity_main);  
  25.           
  26.         initView();  
  27.     }  
  28.   
  29.     private void initView() {  
  30.         // TODO Auto-generated method stub  
  31.         listView=(ListView) findViewById(R.id.listview);  
  32.         data=new ArrayList<String>();  
  33.         for (int i = 1; i <= 50; i++) {  
  34.             data.add("我是测试item:" + i);  
  35.         }  
  36.         adapter=new ArrayAdapter<String>(getApplicationContext(), R.layout.my_list_simple_item1,data);  
  37.         listView.setAdapter(adapter);  
  38.           
  39.         //下拉刷新部分  
  40.         swipeRefreshLayout=(SwipeRefreshLayout) findViewById(R.id.swipeRefreshLayout);  
  41.         //设置卷内的颜色  
  42.         swipeRefreshLayout.setColorSchemeResources(android.R.color.holo_blue_bright,  
  43.                 android.R.color.holo_green_light, android.R.color.holo_orange_light, android.R.color.holo_red_light);  
  44.         //设置下拉刷新监听  
  45.         swipeRefreshLayout.setOnRefreshListener(new OnRefreshListener() {  
  46.               
  47.             @Override  
  48.             public void onRefresh() {  
  49.                 // TODO Auto-generated method stub  
  50.                 new Handler().postDelayed(new Runnable() {  
  51.                       
  52.                     @Override  
  53.                     public void run() {  
  54.                         data.add(0"添加新的item:" + new Random().nextInt());  
  55.                         adapter.notifyDataSetChanged();  
  56.                         //停止刷新动画  
  57.                         swipeRefreshLayout.setRefreshing(false);  
  58.                     }  
  59.                 }, 2000);  
  60.             }  
  61.         });  
  62.     }  
  63.   
  64. }  

非常简单,就不多做介绍了。主要方法:


setOnRefreshListener(OnRefreshListener): 刷新监听

setRefreshing(boolean): 显示或隐藏刷新进度条

isRefreshing(): 检查是否处于刷新状态

setColorScheme(): 设置进度条的颜色,最多能设置四种


Demo下载:

官方下拉刷新swipeRefresh(横线样式):

http://download.csdn.net/detail/breeze_wf/8468115

官方下拉刷新swipeRefresh(圆圈样式):

http://download.csdn.net/detail/breeze_wf/8468125

最新V7包:

http://download.csdn.net/detail/breeze_wf/8468147

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值