最近在群里萌新总是问我加载刷新,这里写文章方便他们观看
第一步:导入加载刷新库(在app 的build.gradle中)
implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0-alpha-14'
第二步:在自己的BaseApplication中声明 全局的加载刷新的默认样式
//全局设置刷新样式,static 代码段可以防止内存泄露
static {
//设置全局的Header构建器
SmartRefreshLayout.setDefaultRefreshHeaderCreator(new DefaultRefreshHeaderCreator() {
@Override
public RefreshHeader createRefreshHeader(Context context, RefreshLayout layout) {
layout.setPrimaryColorsId(R.color.transparence, R.color.text_grey);//全局设置主题颜色(背景色,文字颜色)
layout.setHeaderHeight(60);
return new ClassicsHeader(context).setFinishDuration(0).setDrawableSize(15).setTextSizeTitle(13).setTextSizeTime(10);//.setTimeFormat(new DynamicTimeFormat("更新于 %s"));//指定为经典Header,默认是 贝塞尔雷达Header
}
});
//设置全局的Footer构建器
SmartRefreshLayout.setDefaultRefreshFooterCreator(new DefaultRefreshFooterCreator() {
@Override
public RefreshFooter createRefreshFooter(Context context, RefreshLayout layout) {
layout.setPrimaryColorsId(R.color.transparence, R.color.text_grey);//全局设置主题颜色(背景色,文字颜色)
//指定为经典Footer,默认是 BallPulseFooter
layout.setHeaderHeight(60);
return new ClassicsFooter(context).setFinishDuration(0).setDrawableSize(15).setTextSizeTitle(13);
}
});
}
第三步:在布局xml代码中 用刚导入的这个加载刷新框架去包括你要加载刷新的布局
<com.scwang.smartrefresh.layout.SmartRefreshLayout
android:id="@+id/refreshLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--你的布局 注意 它的用法和srcoview一样只能有一个子view-->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
</RelativeLayout>
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
第四步:加载刷新的使用
在java代码中
//刷新的方法
refreshLayout.setOnRefreshListener(new OnRefreshListener() {
@Override
public void onRefresh(RefreshLayout refreshlayout) {
//你的方法
}
});
//加载更多的方法
refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
@Override
public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
//你的方法
}
});