Android:使用LoadingLayout来展示加载数据时不同状态
LoadingLayout:应用于Android中的一个加载数据不同状态的类库(自定义控件)。
LoadingLayout简介

应用于Android中的一个加载数据不同状态的类库(自定义控件)。 https://github.com/xiong-it/LoadingLayout
Compile
打开你的app module中的build.gradle,添加依赖:
1
| compile 'tech.michaelx.loadinglibrary:loadinglibrary:1.0.1'
|
Sample
在layout的xml中使用如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <?xml version="1.0" encoding="utf-8"?> <tech.michaelx.loadinglibrary.LoadingLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/loading_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:contentDescription="loadingBackground可以是drawable或者颜色" android:padding="10dp" app:emptyView="@layout/empty_layout" app:errorView="@layout/failure_layout" app:loadingAnimator="@animator/loading" app:loadingBackground="#1296db" app:loadingView="@layout/loading_layout" app:retryLoadAlways="true" app:showLoadingDebug="true">
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="本页面使用属性自定义loading各种状态" />
</tech.michaelx.loadinglibrary.LoadingLayout>
|
常用自定义属性
app:loadingView="@layout/loading_layout"
:指定加载时的展示布局,可以为空,为空时使用系统默认ProgressBar
app:loadingAnimator="@animator/loading"
:只用上述属性制定时,该属性方可生效,作用于加载布局的动画
app:loadingBackground="#1296db"
:指定加载过程中页面背景,可以是颜色或者drawable,默认为adnroid:color/white
app:emptyView="@layout/empty_layout"
:指定了数据为空时的展示布局,可以为空,有默认布局,详细可看下方演示gif图
app:errorView="@layout/failure_layout"
:指定加载失败时的展示布局,可以为空,有默认布局,详细可看下方演示gif图
app:retryLoadAlways="true"
:是否开启数据为空时点击重试,默认为false
app:showLoadingDebug="true"
:是否开启布局预览调试,默认为false,开启后可以在AS中正常预览布局文件,打包时请一定写false!
其他更多属性请看
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| <resources> <declare-styleable name="LoadingLayout"> <attr name="emptyView" format="reference" /> <attr name="errorView" format="reference" /> <attr name="loadingView" format="reference" /> <attr name="loadingAnimator" format="reference" /> <attr name="loadingBackground" format="reference|color" /> <attr name="loadingProgressDrawable" format="reference" /> <attr name="emptyDrawable" format="reference" /> <attr name="emptyText" format="string" /> <attr name="errorDrawable" format="reference" /> <attr name="errorText" format="string" /> <attr name="retryLoadAlways" format="boolean" /> <attr name="showLoadingDebug" format="boolean" /> </declare-styleable> </resources>
|
Activity/Fragment代码中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| mLoadingLayout = (LoadingLayout) findViewById(R.id.loading_layout);
mLoadingLayout.loadComplete();
mLoadingLayout.showEmpty();
mLoadingLayout.loadFailure();
mLoadingLayout.setOnRetryLoadListener(OnRetryLoadListener);
mLoadingLayout.showLoading();
|
效果图
加载中,加载完成,数据为空,加载失败,点击重试 几种状态演示gif

注意事项
LoadingLayout需要依赖于appcompat-v7
&support-annotations
,请在工程中添加这两个依赖(版本可自定义,不建议低于25.3.1):
1 2
| compile "com.android.support:appcompat-v7:25.3.1" compile 'com.android.support:support-annotations:25.3.1'
|
项目地址
感谢阅读,欢迎体验:https://github.com/xiong-it/LoadingLayout