SmartRefreshLayout 使用

1.SmartRefreshLayout以打造一个强大,稳定,成熟的下拉刷新框架为目标,并集成各种的炫酷、多样、实用、美观的Header和Footer。 正如名字所说,SmartRefreshLayout是一个“聪明”或者“智能”的下拉刷新布局,由于它的“智能”,它不只是支持所有的View,还支持多层嵌套的视图结构。 它继承自ViewGroup 而不是FrameLayout或LinearLayout,提高了性能。 也吸取了现在流行的各种刷新布局的优点,包括谷歌官方的 SwipeRefreshLayout, 其他第三方的 Ultra-Pull-To-RefreshTwinklingRefreshLayout 。 还集成了各种炫酷的 Header 和 Footer。

2.GitHub地址

https://github.com/scwang90/SmartRefreshLayout

3.使用

在全局App类中配置 

 //static 代码段可以防止内存泄露
    static {
        //设置全局的Header构建器
        SmartRefreshLayout.setDefaultRefreshHeaderCreator(new DefaultRefreshHeaderCreator() {
            @Override
            public RefreshHeader createRefreshHeader(Context context, RefreshLayout layout) {
                layout.setPrimaryColorsId(R.color.colorPrimary, android.R.color.white);//全局设置主题颜色
                return new ClassicsHeader(context);//.setTimeFormat(new DynamicTimeFormat("更新于 %s"));//指定为经典Header,默认是 贝塞尔雷达Header
            }
        });
        //设置全局的Footer构建器
        SmartRefreshLayout.setDefaultRefreshFooterCreator(new DefaultRefreshFooterCreator() {
            @Override
            public RefreshFooter createRefreshFooter(Context context, RefreshLayout layout) {
                //指定为经典Footer,默认是 BallPulseFooter
                return new ClassicsFooter(context).setDrawableSize(20);
            }
        });
    }

在布局文件中使用

 <com.scwang.smartrefresh.layout.SmartRefreshLayout
            android:paddingRight="@dimen/dp_10"
            android:paddingLeft="@dimen/dp_10"
            android:id="@+id/refreshLayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:srlAccentColor="@color/colorAccent"
            app:srlEnablePreviewInEditMode="true">
            <!--srlAccentColor srlPrimaryColor 将会改变 Header 和 Footer 的主题颜色-->
            <!--srlEnablePreviewInEditMode 可以开启和关闭预览功能-->
            <android.support.v7.widget.RecyclerView
                android:id="@+id/recycler_view"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:scrollbars="none"/>
        </com.scwang.smartrefresh.layout.SmartRefreshLayout>

在页面代码中配置

  refreshLayout.setEnableLoadMoreWhenContentNotFull(false)//不满一页 不加载更多
        refreshLayout.setOnRefreshLoadMoreListener(object : OnRefreshLoadMoreListener {
            override fun onRefresh(refreshLayout: RefreshLayout) {
                //下拉刷新
            }

            override fun onLoadMore(refreshLayout: RefreshLayout) {
                //上滑加载更多
            }
        })

 

点赞