找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3392|回復: 0
打印 上一主題 下一主題
收起左側(cè)

商城開發(fā)筆記-08-下拉刷新控件SwipeRefreshLayout介紹

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:109770 發(fā)表于 2016-3-22 17:22 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
一、SwipeRefreshLayout的簡介


       以前我們都是使用XListView等流行框架實現(xiàn)下拉刷新以及上拉加載更多的,今天我介紹一個新的控件SwipeRefreshLayout,它是谷歌官方提供的一個新控件,同樣可以實現(xiàn)下拉刷新。
       SwipeRefreshLayoutV4支持包中提供的一個新的控件,它可以實現(xiàn)下拉刷新的功能。但是缺點是沒有實現(xiàn)上拉加載更多。但是網(wǎng)上有很多開發(fā)者對它進行加強,使得它可以實現(xiàn)上拉加載。
       SwipeRefreshLayout可以與ListView,RecycleViewGridView等列表控件配合使用,而且高度解耦,使用方便靈活,下拉刷新效果比較炫酷,因此贏得我們的青睞。

       這是SwipeRefreshLayout的官方文檔,注:這是國內(nèi)的API鏡像。
http://doc.cniao5.com/android/reference/android/support/v4/widget/SwipeRefreshLayout.html

二、SwipeRefreshLayout的基本使用
1、在Gradle中引入SwipeRefreshLayout的依賴庫。
compile 'com.android.support:support-v4:23.1.1'
2、在布局文件當中放置我們的SwipeRefreshLayout。SwipeRefreshLayout里面也可以放置任意列表控件,通過這種方式可以實現(xiàn)SwipeRefreshLayout和列表之間的解耦。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <android.support.v4.widget.SwipeRefreshLayout
        android:id="@+id/refreshLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <android.support.v7.widget.RecyclerView
            android:id="@+id/recycle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
    </android.support.v4.widget.SwipeRefreshLayout>
</LinearLayout>
3、代碼中的配置,詳細看注釋,不一一贅述。這個Demo是在CardView的基礎(chǔ)上修改而來的。

refreshLayout= (SwipeRefreshLayout)findViewById(R.id.refreshLayout);
//設(shè)置進度條的顏色,不定長參數(shù)可以設(shè)置多種顏色
//對于RefreshLayout,網(wǎng)上有人說最多4種顏色,不要使用android.R.color.,否則會卡死
refreshLayout.setColorSchemeColors(
        Color.RED,
        Color.YELLOW,
        Color.GREEN);
//設(shè)置進度條的背景顏色
refreshLayout.setProgressBackgroundColorSchemeColor(Color.WHITE);
//設(shè)置大小
refreshLayout.setSize(SwipeRefreshLayout.LARGE);
//設(shè)置手指劃過多少像素開始觸發(fā)刷新
refreshLayout.setDistanceToTriggerSync(100);
//設(shè)置刷新的時候監(jiān)聽,三秒鐘之后添加數(shù)據(jù)完畢
refreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
    @Override
    public void onRefresh() {
        //模擬網(wǎng)絡(luò)請求數(shù)據(jù)
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < 30; i++) {
                    //添加數(shù)據(jù)
                    myAdapter.addData(i, "new data " + i);
                    myAdapter.notifyItemRangeChanged(0, 30);
                }
                //recyclerView回到最上面
                recyclerView.scrollToPosition(0);
                //判斷是否在刷新
//                     refreshLayout.isRefreshing()
                //刷新完畢,關(guān)閉下拉刷新的組件
                refreshLayout.setRefreshing(false);
            }
        }, 3000);
    }
});

三、運行效果

是不是覺得瞬間高大上有木有,大家快去敲碼吧O(_)O~~


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩

相關(guān)帖子

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表