欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 商城開發(fā)筆記-08-下拉刷新控件SwipeRefreshLayout介紹 [打印本頁]

作者: 51黑bing    時間: 2016-3-22 17:22
標題: 商城開發(fā)筆記-08-下拉刷新控件SwipeRefreshLayout介紹
一、SwipeRefreshLayout的簡介


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

       這是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、在布局文件當中放置我們的SwipeRefreshLayoutSwipeRefreshLayout里面也可以放置任意列表控件,通過這種方式可以實現(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的基礎上修改而來的。

refreshLayout= (SwipeRefreshLayout)findViewById(R.id.refreshLayout);
//設置進度條的顏色,不定長參數(shù)可以設置多種顏色
//對于RefreshLayout,網(wǎng)上有人說最多4種顏色,不要使用android.R.color.,否則會卡死
refreshLayout.setColorSchemeColors(
        Color.RED,
        Color.YELLOW,
        Color.GREEN);
//設置進度條的背景顏色
refreshLayout.setProgressBackgroundColorSchemeColor(Color.WHITE);
//設置大小
refreshLayout.setSize(SwipeRefreshLayout.LARGE);
//設置手指劃過多少像素開始觸發(fā)刷新
refreshLayout.setDistanceToTriggerSync(100);
//設置刷新的時候監(jiān)聽,三秒鐘之后添加數(shù)據(jù)完畢
refreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
    @Override
    public void onRefresh() {
        //模擬網(wǎng)絡請求數(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()
                //刷新完畢,關閉下拉刷新的組件
                refreshLayout.setRefreshing(false);
            }
        }, 3000);
    }
});

三、運行效果

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







歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1