Android:使用LoadingLayout来展示加载数据时不同状态
2017-11-21 13:16
519 查看
LoadingLayout简介
应用于Android中的一个加载数据不同状态的类库(自定义控件)。
Compile
打开你的app module中的build.gradle,添加依赖:compile 'tech.michaelx.loadinglibrary:loadinglibrary:1.0.2'
最新版本号请参看最上方徽标
Sample
在layout的xml中使用如下:<?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!
其他更多属性请看
<resources> <declare-styleable name="LoadingLayout"> <!--设置数据为空的layout--> <attr name="emptyView" format="reference" /> <!--设置加载失败的layout--> <attr name="errorView" format="reference" /> <!--设置加载中的layout--> <attr name="loadingView" format="reference" /> <!--设置加载动画id--> <attr name="loadingAnimator" format="reference" /> <!--设置加载中的背景,或者颜色--> <attr name="loadingBackground" format="reference|color" /> <!--设置默认Progressbar的progress_drawable--> <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" /> <!--设置是否总是点击重试,无论数据为空或者失败,默认false--> <attr name="retryLoadAlways" format="boolean" /> <!--设置自动显示加载调试--> <attr name="showLoadingDebug" format="boolean" /> </declare-styleable> </resources>
Activity/Fragment代码中
// 初始化布局对象 mLoadingLayout = (LoadingLayout) findViewById(R.id.loading_layout); // 加载完毕/加载成功 mLoadingLayout.loadComplete(); // 数据为空 mLoadingLayout.showEmpty(); // 加载失败 mLoadingLayout.loadFailure(); // 设置点击重试监听 mLoadingLayout.setOnRetryLoadListener(OnRetryLoadListener); // 显示加载中 // 代码调用了setLoadingView(),才需要手动调用showLoading() mLoadingLayout.showLoading();
效果图
加载中,加载完成,数据为空,加载失败,点击重试 几种状态演示gif注意事项
LoadingLayout需要依赖于appcompat-v7&
support-annotations,请在工程中添加这两个依赖(版本可自定义,不建议低于25.3.1):
compile "com.android.support:appcompat-v7:25.3.1" compile 'com.android.support:support-annotations:25.3.1'
项目地址
感谢阅读,欢迎体验:https://github.com/xiong-it/LoadingLayout相关文章推荐
- 能展示不同页面的加载LoadingLayout布局
- Android 端天气预报APP的实现(六)使用DrawerLayout展示城市数据
- 封装项目整体架构,访问网络数据,展示列表数据,根据图片数量的不同来多条目加载,使用Universal-Image-Loader进行图片加载
- 【黑马Android】(04)数据库的创建和sql语句增删改查/LinearLayout展示列表数据/ListView的使用和BaseAdater/内容提供者创建
- Android判断网络状态是否断开+Android完全关闭应用程序+ 本文讲述了Android中不同Activity之间的数据传递 — Bundle对象的实现(-)+Android中Bundle的使用示例
- Android使用LinearViewLayout展示数据
- 【黑马Android】(04)数据库的创建和sql语句增删改查/LinearLayout展示列表数据/ListView的使用和BaseAdater/内容提供者创建
- Android RecyclerView 加载更多数据 及 不同类型itemView的使用
- Android中View(视图)绘制不同状态背景图片原理深入分析以及StateListDrawable使用详解
- android控件学习二:使用LayoutInflater动态加载布局和操作控件
- Android使用ListView展示列表数据
- android: 静态XML和动态加载XML混合使用,以及重写Layout控件
- [置顶] Android_Loader_使用LoaderManager管理Loader实现异步动态加载数据
- Android中View(视图)绘制不同状态背景图片原理深入分析以及StateListDrawable使用详解
- [置顶] Android_ListView_Adapter使用和数据动态加载
- 转:android: 静态XML和动态加载XML混合使用,以及重写Layout控件
- 【Android开发学习44】android: 静态XML和动态加载XML混合使用,以及重写Layout控件
- 完成了WF工作流持久化和对持久化介质数据的加载, 但是仅仅用持久化,不能够保存工作流当前的执行状态,需要跟踪服务支持,怎样使用Tracing 服务呢?
- Android中使用Listview动态加载数据
- 完成了WF工作流持久化和对持久化介质数据的加载, 但是仅仅用持久化,不能够保存工作流当前的执行状态,需要跟踪服务支持,怎样使用Tracing 服务呢?