smartrefreshlayout使用

1,032 阅读1分钟

记录方便以后用到查阅 第一步导入包 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0-alpha-14' implementation 'com.scwang.smartrefresh:SmartRefreshHeader:1.1.0-alpha-14'

第二步在applicathion中全局设置上下拉刷新加载控件 private static void setSmartRefreshLayoutHeaderAndFooter() { //static 代码段可以防止内存泄露 //设置全局的Header构建器 SmartRefreshLayout.setDefaultRefreshHeaderCreator(new DefaultRefreshHeaderCreator() { @Override public RefreshHeader createRefreshHeader(Context context, RefreshLayout layout) { layout.setPrimaryColorsId(R.color.blue2,R.color.blue2, R.color.white);//全局设置主题颜色 return new TaurusHeader(context);//.setTimeFormat(new DynamicTimeFormat("更新于 %s"));//指定为水滴Header,默认是 贝塞尔雷达Header } }); //设置全局的Footer构建器 SmartRefreshLayout.setDefaultRefreshFooterCreator(new DefaultRefreshFooterCreator() { @Override public RefreshFooter createRefreshFooter(Context context, RefreshLayout layout) { //BallPulseFooter,默认是 BallPulseFooter return new BallPulseFooter(context); } }); SmartRefreshLayout.setDefaultRefreshInitializer(new DefaultRefreshInitializer() { @Override public void initialize(@NonNull Context context, @NonNull RefreshLayout layout) { layout.setEnableAutoLoadMore(true)//自动加载更多 .setEnableLoadMoreWhenContentNotFull(false)//是否在列表不满一页时候开启上拉加载功能 .setDragRate(0.5f).setHeaderHeight(100)//阻尼效果和高度 .setEnableOverScrollBounce(true)////是否启用越界回弹 .setEnableScrollContentWhenLoaded(true)//是否在加载完成时滚动列表显示新的内容 .setEnableHeaderTranslationContent(true);//是否下拉Header的时候向下平移列表或者内容

        }
    });
}

第三步在Activity中使用 smartRefresh = (SmartRefreshLayout) findViewById(R.id.smartRefresh); smartRefresh.setOnRefreshListener(new OnRefreshListener() { @Override public void onRefresh(@NonNull RefreshLayout refreshLayout) { pageNum = 1; loaddata(); } }); smartRefresh.setOnLoadMoreListener(new OnLoadMoreListener() { @Override public void onLoadMore(@NonNull RefreshLayout refreshLayout) { pageNum++; loaddata(); } }); 加载完数据时记得smartRefresh.finishRefresh(true); smartRefresh.finishLoadMore(true);