Android下拉刷新-SwipeRefreshLayout

简介:

现在市面上新闻类的App基本上都有下拉刷新,算是一个标配吧,网上关于下拉刷新的博客也有很多,实现方式可以使用开源的PullToRefresh,自定义ListView,或者可以直接使用LineLayOut直接搞定的。不过Google在今年在support v4 19.1版本的library推出了SwipeRefreshLayout,字面上的意思就是下拉刷新,继承自ViewGroup,而如今google推出了更官方的下拉刷新组件,对于开发者而言无疑是一个好事情,比较少的代码实现需要的功能。

基本布局

先来看下简单的布局,在最外层加上SwipeRefreshLayout,但是子的View需要时可滚动的(ScrollView或ListView)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<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"
     android:paddingLeft= "@dimen/activity_horizontal_margin"
     android:paddingRight= "@dimen/activity_horizontal_margin"
     android:paddingTop= "@dimen/activity_vertical_margin"
     android:paddingBottom= "@dimen/activity_vertical_margin"  tools:context= ".MainActivity" >
 
     <android.support.v4.widget.SwipeRefreshLayout
         android:id= "@+id/swipeRefreshLayout"
         android:layout_width= "wrap_content"
         android:layout_height= "wrap_content"
         >
         <ListView
             android:id= "@+id/listView"
             android:layout_width= "match_parent"
             android:layout_height= "wrap_content" >
 
          </ListView>
     </android.support.v4.widget.SwipeRefreshLayout>
 
 
</RelativeLayout>

 布局效果如下:

Demo实现

MainActivity中onCreate中的初始化一下SwipeLayOut,需要注意的方法是setColorScheme(), 设置进度条的颜色主题,最多能设置四种;

1
2
3
4
5
6
7
8
myListView = (ListView) findViewById(R.id.listView);
       mySwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipeRefreshLayout);
 
       mySwipeRefreshLayout.setOnRefreshListener( this );
       mySwipeRefreshLayout.setColorScheme(android.R.color.holo_blue_bright, android.R.color.holo_green_light,
               android.R.color.holo_orange_light, android.R.color.holo_red_light);
       listAdapter =  new  ArrayAdapter( this ,android.R.layout.simple_list_item_1,listIDE);
       myListView.setAdapter(listAdapter);

 

MainActivity中需要实现一下 SwipeRefreshLayout.OnRefreshListener 

1
2
3
4
5
@Override
   public  void  onRefresh() {
 
       refreshHandler.sendEmptyMessageDelayed(REFRESH_STATUS,  1500 );
   }

 最后初始化一下数据setRefreshing(boolean):,显示或隐藏刷新进度条

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
private  static  final  int  REFRESH_STATUS = 0 ;
   private  ListView myListView;
   private  SwipeRefreshLayout mySwipeRefreshLayout;
   private  ArrayAdapter<String> listAdapter;
   private  List<String> listIDE =  new  ArrayList<String>(Arrays.asList( "Visual Studio" "Android Studio" "Eclipse" "Xcode" ));
   private  Handler refreshHandler =  new  Handler()
   {
       public  void  handleMessage(android.os.Message msg)
       {
           switch  (msg.what)
           {
               case  REFRESH_STATUS:
                   listIDE.removeAll(listIDE);
                   listIDE.addAll(Arrays.asList( "C#" "Java" "C++" , "Object-C" ));
                   listAdapter.notifyDataSetChanged();
                   mySwipeRefreshLayout.setRefreshing( false );
                   break ;
 
           }
       };
   };

 最后的效果如下:

本文转自Fly_Elephant博客园博客,原文链接:http://www.cnblogs.com/xiaofeixiang/p/4185975.html,如需转载请自行联系原作者

相关文章
|
10月前
|
Android开发
Android RecyclerView 使用大全 - 基础使用,item 动画,下拉刷新等(三)
Android RecyclerView 使用大全 - 基础使用,item 动画,下拉刷新等
|
10月前
|
Android开发
Android RecyclerView 使用大全 - 基础使用,item 动画,下拉刷新等(一)
Android RecyclerView 使用大全 - 基础使用,item 动画,下拉刷新等
|
10月前
|
Android开发
Android RecyclerView 使用大全 - 基础使用,item 动画,下拉刷新等(二)
Android RecyclerView 使用大全 - 基础使用,item 动画,下拉刷新等
|
2月前
|
XML Java Android开发
Android Studio App自定义控件中视图的构造和测量方法讲解及实战(附源码 实现下拉刷新功能 超详细必看)
Android Studio App自定义控件中视图的构造和测量方法讲解及实战(附源码 实现下拉刷新功能 超详细必看)
52 1
|
2月前
|
XML Java Android开发
Android App事件交互Event之模仿京东App实现下拉刷新功能(附源码 可直接使用)
Android App事件交互Event之模仿京东App实现下拉刷新功能(附源码 可直接使用)
51 0
Android App事件交互Event之模仿京东App实现下拉刷新功能(附源码 可直接使用)
|
2月前
|
XML JSON Java
Android App网络通信中利用okhttp实现下拉刷新和上拉加载实战(抓取文章信息 超详细 附源码)
Android App网络通信中利用okhttp实现下拉刷新和上拉加载实战(抓取文章信息 超详细 附源码)
46 0
|
11月前
|
Android开发
Android 使用SwipeRefreshLayout实现RecyclerVeiw的下拉刷新和上拉加载
Android 使用SwipeRefreshLayout实现RecyclerVeiw的下拉刷新和上拉加载
71 0
|
Android开发
Android官方下拉刷新控件SwipeRefreshLayout
Android官方下拉刷新控件SwipeRefreshLayout
641 0
Android官方下拉刷新控件SwipeRefreshLayout
|
Android开发
Android 天气APP(十)继续优化、下拉刷新页面天气数据
Android 天气APP(十)继续优化、下拉刷新页面天气数据
154 0
Android 天气APP(十)继续优化、下拉刷新页面天气数据
|
Android开发 iOS开发 开发者
Android几种强大的下拉刷新库
Android几种强大的下拉刷新库
Android几种强大的下拉刷新库