(向大神致敬,由衷感谢)
刷新模式只写了两个,这里只是简单使用了一下,深入了解自行再搜索(除此之外还有很多,https://www.cnblogs.com/foxy/p/7825073.html可以查看这个)
//雨滴刷新模式 (类似一滴雨降下来)WaveSwipeRefreshLayout:
//简单使用
repositories {
maven {
url "https://jitpack.io"
}
}
implementation 'com.github.recruit-lifestyle:WaveSwipeRefreshLayout:1.6'
wave.setColorSchemeColors(Color.WHITE, Color.BLUE);//雨滴里面的颜色
<jp.co.recruit_lifestyle.android.widget.WaveSwipeRefreshLayout
android:id="@+id/wave"
android:layout_width="match_parent"
android:layout_height="match_parent">
。。。。可以是任何item列表和其他东西
</jp.co.recruit_lifestyle.android.widget.WaveSwipeRefreshLayout>
wave.setOnRefreshListener(new
WaveSwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
handler.postDelayed(new Runnable() {
@Override
public void run() {
//三秒后停止刷新
wave.setRefreshing(false);
}
},3000);
}
});
//雷达脉冲波等刷新支持所有view
implementation 'com.scwang.smart:refresh-layout-kernel:2.0.1' //核心必须依赖
implementation 'com.scwang.smart:refresh-header-radar:2.0.1' //雷达刷新头
implementation 'com.scwang.smart:refresh-footer-ball:2.0.1' //球脉冲加载
<com.scwang.smartrefresh.layout.SmartRefreshLayout
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/refreshLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#444444"
app:srlPrimaryColor="#444444"
app:srlAccentColor="@android:color/white"
app:srlEnablePreviewInEditMode="true">
<!--srlAccentColor srlPrimaryColor 将会改变 Header 和 Footer 的主题颜色-->
<!--srlEnablePreviewInEditMode 可以开启和关闭预览功能-->
<!-雷达-->
<com.scwang.smart.refresh.header.BezierRadarHeader
android:layout_width="match_parent"
android:layout_height="wrap_content"></com.scwang.smart.refresh.header.BezierRadarHeader>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="@dimen/padding_common"
android:background="@android:color/white"
android:text="@string/description_define_in_xml"/>
<com.scwang.smartrefresh.layout.footer.ClassicsFooter
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
<! 脉冲 -->
<com.scwang.smart.refresh.footer.BallPulseFooter
android:layout_width="match_parent"
android:layout_height="wrap_content"> </com.scwang.smart.refresh.footer.BallPulseFooter>
//使用
refreshlayout = findViewById(R.id.refreshlayout);
refreshlayout.setRefreshHeader(new BezierRadarHeader(this));
refreshlayout.setRefreshFooter(new BallPulseFooter(this));
refreshlayout.setOnRefreshListener(new OnRefreshListener() {
@Override
public void onRefresh(RefreshLayout refreshLayout) {
// refreshLayout.finishRefresh();
}
});
refreshlayout.setOnLoadMoreListener(new OnLoadMoreListener() {
@Override
public void onLoadMore(RefreshLayout refreshLayout) {
refreshLayout.finishLoadMore();
}
});
//applition下操作
static {
//设置全局的Header构建器
SmartRefreshLayout.setDefaultRefreshHeaderCreator(new DefaultRefreshHeaderCreator() {
@Override
public RefreshHeader createRefreshHeader(Context context, RefreshLayout layout) {
layout.setPrimaryColorsId(R.color.white, 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);
}
});
}