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

  • 相关阅读:
    485串口接线
    mvc3 升级mvc5
    VB连接ACCESS数据库,使用 LIKE 通配符问题
    VB6 读写西门子PLC
    可用的 .net core 支持 RSA 私钥加密工具类
    解决 Win7 远程桌面 已停止工作的问题
    解决 WinForm 重写 CreateParams 隐藏窗口以后的显示问题
    解决安装 .net framework 发生 extracting files error 问题
    CentOS7 安装配置笔记
    通过特殊处理 Resize 事件解决 WinForm 加载时闪烁问题的一个方法
  • 原文地址:https://www.cnblogs.com/code4app/p/4599918.html
Copyright © 2011-2022 走看看