zoukankan      html  css  js  c++  java
  • Android SwipeRefreshLayout 官方下拉刷新控件介绍

    下面App基本都有下拉刷新的功能,以前基本都使用XListView或者自己写一个下拉刷新,近期Google提供了一个官方的下拉刷新控件SwipeRefreshLayout,我感觉还不错啊,见惯了传统的下拉刷新,这个反而给人耳目一新的感觉(貌似知乎的APP已经使用这种下拉刷新了)。

    Google也在官方网站给出了V4的兼容包:

    顺便看一眼API呗:

    和XlistView差不多,还是很方便使用的,大概就这4个常用的方法,下面贴个简单的例子。

    1、布局文件:

    1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    2.     android:layout_width="match_parent"  
    3.     android:layout_height="match_parent" >  
    4.   
    5.     <android.support.v4.widget.SwipeRefreshLayout  
    6.         android:id="@+id/id_swipe_ly"  
    7.         android:layout_width="match_parent"  
    8.         android:layout_height="match_parent" >  
    9.   
    10.         <ListView  
    11.             android:id="@+id/id_listview"  
    12.             android:layout_width="match_parent"  
    13.             android:layout_height="match_parent" >  
    14.         </ListView>  
    15.     </android.support.v4.widget.SwipeRefreshLayout>  
    16.   
    17. </RelativeLayout>  


    2、MainActivty:

    1. package com.zhy.swiperefreshlayoutdemo;  
    2.   
    3. import java.util.ArrayList;  
    4. import java.util.Arrays;  
    5. import java.util.List;  
    6.   
    7. import android.annotation.SuppressLint;  
    8. import android.app.Activity;  
    9. import android.os.Bundle;  
    10. import android.os.Handler;  
    11. import android.support.v4.widget.SwipeRefreshLayout;  
    12. import android.util.Log;  
    13. import android.widget.ArrayAdapter;  
    14. import android.widget.ListView;  
    15.   
    16. public class MainActivity extends Activity implements SwipeRefreshLayout.OnRefreshListener  
    17. {  
    18.   
    19.     private static final int REFRESH_COMPLETE = 0X110;  
    20.     private SwipeRefreshLayout mSwipeLayout;  
    21.     private ListView mListView;  
    22.     private ArrayAdapter<String> mAdapter;  
    23.     private List<String> mDatas = new ArrayList<String>(Arrays.asList("Java", "Javascript", "C++", "Ruby", "Json",  
    24.             "HTML"));  
    25.   
    26.     private Handler mHandler = new Handler()  
    27.     {  
    28.         public void handleMessage(android.os.Message msg)  
    29.         {  
    30.             switch (msg.what)  
    31.             {  
    32.             case REFRESH_COMPLETE:  
    33.                 mDatas.addAll(Arrays.asList("Lucene", "Canvas", "Bitmap"));  
    34.                 mAdapter.notifyDataSetChanged();  
    35.                 mSwipeLayout.setRefreshing(false);  
    36.                 break;  
    37.   
    38.             }  
    39.         };  
    40.     };  
    41.   
    42.     @SuppressLint("InlinedApi")  
    43.     protected void onCreate(Bundle savedInstanceState)  
    44.     {  
    45.         super.onCreate(savedInstanceState);  
    46.         setContentView(R.layout.activity_main);  
    47.   
    48.         mListView = (ListView) findViewById(R.id.id_listview);  
    49.         mSwipeLayout = (SwipeRefreshLayout) findViewById(R.id.id_swipe_ly);  
    50.   
    51.         mSwipeLayout.setOnRefreshListener(this);  
    52.         mSwipeLayout.setColorScheme(android.R.color.holo_blue_bright, android.R.color.holo_green_light,  
    53.                 android.R.color.holo_orange_light, android.R.color.holo_red_light);  
    54.         mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mDatas);  
    55.         mListView.setAdapter(mAdapter);  
    56.   
    57.     }  
    58.   
    59.     public void onRefresh()  
    60.     {  
    61.         // Log.e("xxx", Thread.currentThread().getName());  
    62.         // UI Thread  
    63.   
    64.         mHandler.sendEmptyMessageDelayed(REFRESH_COMPLETE, 2000);  
    65.   
    66.     }  
    67. }  


    好了,结束,我感觉效果挺好看的,不妨试试。

    效果图:

    ok ~

    源码点击此处下载

    来自:http://blog.csdn.net/lmj623565791/article/details/24521483

  • 相关阅读:
    Linux下修改时间时区的方法介绍
    IIS启用GZip压缩的详细教程(图文)
    jquery定时器的简单代码
    IIS启用GZIP压缩js、css无效的原因及解决方法
    python批量导出导入MySQL用户的方法
    mysql执行计划介绍
    js+json用表格实现简单网站左侧导航
    React Native 二维码扫描组件
    mysql如何修改开启允许远程连接
    react native中的聊天气泡以及timer封装成的发送验证码倒计时
  • 原文地址:https://www.cnblogs.com/code4app/p/4599918.html
Copyright © 2011-2022 走看看