Android 開源框架 ( 十四 ) 列表下拉刷新框架 --- SmartRefreshLayout


  結合上一篇RecyclerView,介紹一個針對列表的下拉和上拉刷新,加載的框架:SmartRefreshLayout.

    Android 開源框架 ( 十三 ) RecyclerView

  可實現自定義Header/Footer

  一.添加依賴

    compile 'com.scwang.smartrefresh:SmartRefreshLayout:1.0.4-7'
    compile 'com.scwang.smartrefresh:SmartRefreshHeader:1.0.4-7'

  二. 布局文件

<com.scwang.smartrefresh.layout.SmartRefreshLayout
        android:id="@+id/refreshLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:srlEnablePreviewInEditMode="true">
        <!--srlAccentColor srlPrimaryColor 將會改變 Header 和 Footer 的主題顏色-->
        <!--srlEnablePreviewInEditMode 可以開啟和關閉預覽功能-->
        <com.scwang.smartrefresh.layout.header.ClassicsHeader
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:srlAccentColor="#000"
            app:srlPrimaryColor="@android:color/white" />


        <android.support.v7.widget.RecyclerView
            android:id="@+id/recycler_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

        <com.scwang.smartrefresh.layout.footer.ClassicsFooter
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:srlAccentColor="#000"
            app:srlPrimaryColor="@android:color/white" />
    </com.scwang.smartrefresh.layout.SmartRefreshLayout>
app:srlEnablePreviewInEditMode="true" 開啟了預覽功能
  

  三. 使用-上拉,下拉

refreshLayout.setOnRefreshListener(new OnRefreshListener() {
        @Override
        public void onRefresh(RefreshLayout refreshlayout) {
            pageNumber = 1;
            //刷新數據
        }
    });

    refreshLayout.setOnLoadmoreListener(new OnLoadmoreListener() {
        @Override
        public void onLoadmore(RefreshLayout refreshlayout) {
            ++ pageNumber;
            //加載數據
        }
    });
    

  四.關閉動畫

  //關閉刷新
    if (refreshLayout != null) {
        refreshLayout.finishRefresh(200);
        refreshLayout.finishLoadmore(200);
    }

  五.拓展- 參數屬性介紹

                        屬性 Attributes

名稱-name 格式-format 描述-description
srlPrimaryColor color 主題顏色
srlAccentColor color 強調顏色
srlReboundDuration integer 釋放后回彈動畫時長
srlHeaderHeight dimension Header的標准高度
srlFooterHeight dimension Footer的標准高度
srlDragRate float 顯示拖動高度/真實拖動高度(默認0.5,阻尼效果)
srlHeaderMaxDragRate float Header最大拖動高度/Header標准高度(默認2,要求>=1)
srlFooterMaxDragRate float Footer最大拖動高度/Footer標准高度(默認2,要求>=1)
srlEnableRefresh boolean 是否開啟下拉刷新功能(默認true)
srlEnableLoadmore boolean 是否開啟加上拉加載功能(默認true)
srlEnableHeaderTranslationContent boolean 拖動Header的時候是否同時拖動內容(默認true)
srlEnableFooterTranslationContent boolean 拖動Footer的時候是否同時拖動內容(默認true)
srlEnablePreviewInEditMode boolean 是否在編輯模式時顯示預覽效果(默認true)
srlDisableContentWhenRefresh boolean 是否在刷新的時候禁止內容的一切手勢操作(默認false)
srlDisableContentWhenLoading boolean 是否在加載的時候禁止內容的一切手勢操作(默認false)



                        

                          方法 Method

名稱-name 格式-format 描述-description
setPrimaryColors colors 主題\強調顏色
setPrimaryColorsId colors 主題\強調顏色資源Id
setReboundDuration integer 釋放后回彈動畫時長
setHeaderHeight dimension Header的標准高度(px/dp 兩個版本)
setFooterHeight dimension Footer的標准高度(px/dp 兩個版本)
setDragRate float 顯示拖動高度/真實拖動高度(默認0.5,阻尼效果)
setHeaderMaxDragRate float Header最大拖動高度/Header標准高度(默認2,要求>=1)
setFooterMaxDragRate float Footer最大拖動高度/Footer標准高度(默認2,要求>=1)
setEnableRefresh boolean 是否開啟下拉刷新功能(默認true)
setEnableLoadmore boolean 是否開啟加上拉加載功能(默認true)
setEnableHeaderTranslationContent boolean 拖動Header的時候是否同時拖動內容(默認true)
setEnableFooterTranslationContent boolean 拖動Footer的時候是否同時拖動內容(默認true)
setEnableAutoLoadmore boolean 是否監聽列表滾動到底部時觸發加載事件
setDisableContentWhenRefresh boolean 是否在刷新的時候禁止內容的一切手勢操作(默認false)
setDisableContentWhenLoading boolean 是否在加載的時候禁止內容的一切手勢操作(默認false)
setReboundInterpolator Interpolator 設置回彈動畫的插值器
setRefreshHeader RefreshHeader 設置指定的Header
setRefreshFooter RefreshFooter 設置指定的Footer
setOnRefreshListener OnRefreshListener 設置刷新監聽器
setOnLoadmoreListener OnLoadmoreListener 設置加載監聽器
setOnRefreshLoadmoreListener OnRefreshLoadmoreListener 同時設置上面兩個監聽器
setOnMultiPurposeListener OnMultiPurposeListener 設置多功能監聽器
setLoadmoreFinished boolean 設置全部數據加載完成,之后不會觸發加載事件
finishRefresh (int delayed) 完成刷新,結束刷新動畫
finishLoadmore (int delayed) 完成加載,結束加載動畫
getRefreshHeader RefreshHeader 獲取Header
getRefreshFooter RefreshFooter 獲取Footer
getState RefreshState 獲取當前狀態
isRefreshing boolean 是否正在刷新
isLoading boolean 是否正在加載
autoRefresh (int delayed) 觸發自動刷新
autoLoadmore (int delayed) 觸發自動加載

  參數屬性引用自:
SmartRefreshLayout---“智能”下拉刷新布局 感謝原作者!
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM