文件名称:LoadingLayoutDemo-加载中、无网络、无数据、出错4种状态的载入布局.zip
文件大小:146KB
文件格式:ZIP
更新时间:2022-10-13 20:29:20
开源项目
前言项目里都会遇到几种页面,分别为加载中、无网络、无数据、出错四种情况,经常要使用,所以封成库引用了,方便使用,顺便分享出来。先看一下效果: 原理比较简单,继承FrameLayout,在xml渲染完成后,加上加载中、无网络、无数据、出错四个页面,根据需要控制显示哪一层,花了些时间,开了很多方法出来,支持很多属性的设置,算是比较实用,源码里已对各个方法的作用都加了注释,就不做过多解释了,项目GitHub地址:https://github.com/weavey/LoadingLayoutDemo,感兴趣的可以看看,欢迎指出问题。使用方式gradle引用:compile 'com.lai.weavey:loadinglayout:1.2'使用说明LoadingLayout支持全局配置,对所有使用到的地方都起效,需要在Application中配置,如下: public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
LoadingLayout.getConfig()
.setErrorText("出错啦~请稍后重试!")
.setEmptyText("抱歉,暂无数据")
.setNoNetworkText("无网络连接,请检查您的网络···")
.setErrorImage(R.mipmap.define_error)
.setEmptyImage(R.mipmap.define_empty)
.setNoNetworkImage(R.mipmap.define_nonetwork)
.setAllTipTextColor(R.color.gray)
.setAllTipTextSize(14)
.setReloadButtonText("点我重试哦")
.setReloadButtonTextSize(14)
.setReloadButtonTextColor(R.color.gray)
.setReloadButtonWidthAndHeight(150,40);
}
}由于“加载中”的页面,可能每个App都不一样,因此,LoadingLayout支持自定义LoadingPage,如下: LoadingLayout.getConfig()
.setLoadingPageLayout(R.layout.define_loading_page);同时,为了适应个别界面的“特殊需求”,LoadingLayout也支持局部设置各种属性,仅对当前对象生效,不影响全局。如下: LoadingLayout loading = (LoadingLayout) findViewById(R.id.loading_layout);
loading.setLoadingPage(R.layout.define_loading_page)
.setEmptyText("暂无报告数据")
.setErrorText("")
.setNoNetworkText("")
.setErrorImage(R.mipmap.ic_launcher)
.setErrorTextSize(16)
.setReloadButtonText("点我重新加载哦"); //等等为ReloadButton设置监听:loadingLayout.setOnReloadListener(new LoadingLayout.OnReloadListener() {
@Override
public void onReload(View v) {
}
});设置显示的页面: loadingLayout.setStatus(LoadingLayout.Loading);//加载中
loadingLayout.setStatus(LoadingLayout.Empty);//无数据
loadingLayout.setStatus(LoadingLayout.Error);//错误
loadingLayout.setStatus(LoadingLayout.No_Network);//无网络
loadingLayout.setStatus(LoadingLayout.Success);//加载成功最后,在xml里面使用:
【文件预览】:
LoadingLayoutDemo-master
----gradlew.bat(2KB)
----gradlew(5KB)
----loadinglib()
--------proguard-rules.pro(670B)
--------src()
--------.gitignore(829B)
--------build.gradle(897B)
----gradle.properties(730B)
----app()
--------proguard-rules.pro(670B)
--------src()
--------.gitignore(829B)
--------build.gradle(955B)
----gradle()
--------wrapper()
----.idea()
--------gradle.xml(682B)
--------runConfigurations.xml(564B)
--------misc.xml(2KB)
--------vcs.xml(180B)
--------copyright()
--------modules.xml(496B)
--------encodings.xml(159B)
--------compiler.xml(686B)
----.gitignore(829B)
----README.md(268B)
----settings.gradle(30B)
----build.gradle(512B)