前言
项目中经常遇到这样一种情况,新打开的界面需要加载数据,存在多种状态的结果,需要根据不同结果展示界面,这个过程归纳起来可以分为五种状态:初始状态、请求状态、空数据状态、网络错误状态、成功请求状态。 如果多个界面都存在这个流程,那么封装整个过程的调用就很有必要了,既可以简化调用过程,又可以很方便的管理整个流程。
下面话不多说了,来一起看看详细的介绍吧
功能简介
效果图展示
最简单的使用方式
1.Add it in your root build.gradle at the end of repositories:
allprojects { repositories { ... maven { url 'https://*jitpack.*i*o' } } }
2.Add the dependency
dependencies { implementation 'com.github.pengMaster:MultipleLayout:1.0.0' }
3.在布局中添加
注意: MultipleLayout 可做为没有标题栏的最外层布局,内部可包裹任何内容
4.代码中使用
//重试点击事件 mMultipleLayout.setOnRetryClickListener { //模拟网络请求 Toast.makeText(this@MainActivity,"正在加载。。",Toast.LENGTH_SHORT).show() } //数据为空 mMultipleLayout.showEmpty() //加载失败 mMultipleLayout.showError() //正在加载 mMultipleLayout.showLoading() //网络加载失败 mMultipleLayout.showNoNetwork() //显示内容 mMultipleLayout.showContent()
扩展功能
1.自定义状态布局
app:emptyView="@layout/layout_empty_view" app:errorView="@layout/layout_error_view" app:loadingView="@layout/layout_loading_view" app:noNetworkView="@layout/layout_network_view">
2.代码引入布局
//数据为空 showEmpty(int layoutId, ViewGroup.LayoutParams layoutParams) showEmpty(View view, ViewGroup.LayoutParams layoutParams) //加载失败 showError(int layoutId, ViewGroup.LayoutParams layoutParams) showError(View view, ViewGroup.LayoutParams layoutParams) //正在加载 showLoading(int layoutId, ViewGroup.LayoutParams layoutParams) showLoading(View view, ViewGroup.LayoutParams layoutParams) //网络加载失败 void showNoNetwork(int layoutId, ViewGroup.LayoutParams layoutParams) showNoNetwork(View view, ViewGroup.LayoutParams layoutParams)
3.扩展
后续添加各种弹框
参与贡献
github地址
项目地址:
恋爱进行时九游版
恋爱进行时九游版是一款以模拟恋爱玩法为核心的角色扮演手游,精
皇室对决fr(Null’s Royale)
皇室对决fr,即皇室战争的私服变态版本,在该版本中玩家能够拥
养了个猫联机版游戏
养了个猫小游戏一个猫咪主题的模拟经营类型的手游,在游戏中我那
模拟山羊收获日小米版
模拟山羊收获日小米版是一个极其魔性的手机游戏,在游戏中玩家将
女配逆袭之素衣
女配逆袭之素衣是一款恋爱养成冒险的一款游戏,可以角色扮演,在