Android——Google官方下拉重新整理控制項SwipeRefreshLayout

來源:互聯網
上載者:User

標籤:over   col   rac   wip   dataset   his   override   demo   ora   

轉自:http://blog.csdn.net/zouzhigang96/article/details/50476402

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

前言: 
如今Google推出了更官方的下拉重新整理控制項, 這無疑是對安卓開發人員來說是個好訊息,很方便的使用這個SwipeRefreshLayout控制項實現下拉重新整理功能。Android4.0以下的版本需要用到 Android-support-v4.jar包才能用到 
android-support-v4.jar 包:http://download.csdn.net/detail/h7870181/7784247

註:記得一定要把Support library的版本升級到19.1或最新

GoogleSwipeRefreshLayout官方API

那下面就來做一個簡單的DEMO,來看看SwipeRefreshLayout這個控制項到底如何

註:樓主使用的是Android Studio 作為IDE。

1,首先來看看SwipeRefreshLayout的布局檔案

<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.SwipeRefreshLayout    xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/swiperereshlayout"    android:layout_marginTop="55dp"    android:layout_width="match_parent"    android:layout_height="match_parent">    <ListView        android:id="@+id/listview"        android:layout_width="match_parent"        android:layout_height="match_parent"></ListView></android.support.v4.widget.SwipeRefreshLayout>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

2,在Activity中是如何使用SwipeRefreshLayout的

public class MainActivity extends AppCompatActivity {    private SwipeRefreshLayout swiperereshlayout ;    private ListView listview ;    private ArrayAdapter<String> adapter;    private List<String> data;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);        setSupportActionBar(toolbar);        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);        fab.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)                        .setAction("Action", null).show();            }        });        initView();    }    private void initView (){        swiperereshlayout = (SwipeRefreshLayout) findViewById(R.id.swiperereshlayout);        listview = (ListView) findViewById(R.id.listview);        data = new ArrayList<String>();        for (int i = 0; i < 20; i++) {            data.add("當前的item為 " + i);        }        adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, data);        listview.setAdapter(adapter);        swiperereshlayout.setColorSchemeResources(android.R.color.holo_blue_bright,                android.R.color.holo_green_light, android.R.color.holo_orange_light);        //給swipeRefreshLayout綁定重新整理監聽        swiperereshlayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {            @Override            public void onRefresh() {                    //設定2秒的時間來執行以下事件                new Handler().postDelayed(new Runnable() {                    public void run() {                        data.add(0, "重新整理後新增的item");                        adapter.notifyDataSetChanged();                        swiperereshlayout.setRefreshing(false);                    }                }, 2000);            }        });    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60

註:主要代碼就是在initView這個方法裡面,裡面簡單的實現的如何下拉載入新資料,只是做了一個簡單的示範 ,具體深入的開發,大家也可以嘗試一下自訂。

主要方法

(1)setOnRefreshListener(OnRefreshListener): 為布局添加一個Listener

(2)setRefreshing(boolean): 顯示或隱藏重新整理進度條

(3)isRefreshing(): 檢查是否處於重新整理狀態

(4)setColorSchemeResources(): 設定進度條的顏色主題,最多能設定四種

目前 swiperereshlayout.setColorScheme()->已棄用 
可以使用swiperereshlayout.setColorSchemeResources()來設定顏色。

總結:

Google官方目前正在不斷完善自己的SDK,推出越來越多的組件,其目的是讓開發更簡單,設計上更統一,這可能是Google未來的方向,不管怎樣,這對開發人員來說無疑是非常好的訊息。

源碼下載

Android——Google官方下拉重新整理控制項SwipeRefreshLayout(轉)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.