服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Android - Android最简单的状态切换布局实现教程

Android最简单的状态切换布局实现教程

2022-08-09 11:05雨落文染丶 Android

这篇文章主要给大家介绍了关于Android中最简单的状态切换布局的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

项目中经常遇到这样一种情况,新打开的界面需要加载数据,存在多种状态的结果,需要根据不同结果展示界面,这个过程归纳起来可以分为五种状态:初始状态、请求状态、空数据状态、网络错误状态、成功请求状态。 如果多个界面都存在这个流程,那么封装整个过程的调用就很有必要了,既可以简化调用过程,又可以很方便的管理整个流程。

下面话不多说了,来一起看看详细的介绍吧

功能简介

  • 正在加载数据
  • 数据加载失败
  • 数据加载为空
  • 网络加载失败
  • 重试点击事件
  • 支持自定义布局

效果图展示

Android最简单的状态切换布局实现教程

最简单的使用方式

1.Add it in your root build.gradle at the end of repositories:

?
1
2
3
4
5
6
allprojects {
 repositories {
  ...
  maven { url 'https://jitpack.io' }
 }
 }

2.Add the dependency

?
1
2
3
dependencies {
  implementation 'com.github.pengMaster:MultipleLayout:1.0.0'
}

3.在布局中添加

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<king.bird.multipleview.MultipleLayout
 android:id="@+id/mMultipleLayout"
 android:layout_width="match_parent"
 android:layout_height="match_parent">
 
 <!--任意内容-->
 <TextView
  android:id="@+id/mTvContent"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_centerInParent="true"
  android:text="@string/content" />
 
</king.bird.multipleview.MultipleLayout>

注意: MultipleLayout 可做为没有标题栏的最外层布局,内部可包裹任何内容

4.代码中使用

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//重试点击事件
mMultipleLayout.setOnRetryClickListener {
 //模拟网络请求
 Toast.makeText(this@MainActivity,"正在加载。。",Toast.LENGTH_SHORT).show()
}
//数据为空
mMultipleLayout.showEmpty()
//加载失败
mMultipleLayout.showError()
//正在加载
mMultipleLayout.showLoading()
//网络加载失败
mMultipleLayout.showNoNetwork()
//显示内容
mMultipleLayout.showContent()

扩展功能

1.自定义状态布局

?
1
2
3
4
5
6
7
8
9
10
11
<king.bird.multipleview.MultipleLayout
 android:id="@+id/multipleStatusView"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 <!--自定义布局-->
 app:emptyView="@layout/layout_empty_view"
 app:errorView="@layout/layout_error_view"
 app:loadingView="@layout/layout_loading_view"
 app:noNetworkView="@layout/layout_network_view">
 
</king.bird.multipleview.MultipleLayout>

2.代码引入布局

?
1
2
3
4
5
6
7
8
9
10
11
12
//数据为空
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.扩展

后续添加各种弹框

参与贡献

  • Fork 本项目
  • 新建 Feat_xxx 分支
  • 提交代码
  • 新建 Pull Request

github地址

项目地址:https://github.com/pengMaster/MultipleLayout

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。

原文链接:https://www.jianshu.com/p/280ee7c32235

延伸 · 阅读

精彩推荐
  • AndroidAndroid自定义控件ViewGroup实现标签云

    Android自定义控件ViewGroup实现标签云

    这篇文章主要为大家详细介绍了Android自定义控件ViewGroup实现标签云,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    Owen-Chan8092022-02-27
  • AndroidAndroid应用UI开发中Fragment的常见用法小结

    Android应用UI开发中Fragment的常见用法小结

    这篇文章主要介绍了Android应用UI开发中Fragment的常见用法小结,Fragment的存在是为了解决不同屏幕分辩率的动态和灵活UI设计,需要的朋友可以参考下...

    xyz_lmn6562021-06-18
  • Android浅析Android.mk

    浅析Android.mk

    Android.mk是Android提供的一种makefile文件,用来指定诸如编译生成so库名、引用的头文件目录、需要编译的.c/.cpp文件和.a静态库文件等。要掌握jni,就必须熟练...

    ly13142012202021-05-08
  • AndroidOpenGL ES着色器使用详解(二)

    OpenGL ES着色器使用详解(二)

    这篇文章主要为大家详细介绍了OpenGL ES着色器的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    weiers8702022-02-24
  • Androidandroid 把float转换成Int的实例讲解

    android 把float转换成Int的实例讲解

    今天小编就为大家分享一篇android 把float转换成Int的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    ThunderRong5362022-07-14
  • Androidandroid 网络连接处理分析

    android 网络连接处理分析

    在Android中,可以有多种方式来实现网络编程,本文将详细介绍android 网络连接处理,需要了解的朋友可以参考下...

    Android开发网3942020-12-19
  • Androidandroid 之listview 优化方法

    android 之listview 优化方法

    这篇文章主要介绍了android 之listview 优化方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    石头_起航5692022-03-02
  • AndroidAndroid编程中EditText限制文字输入的方法

    Android编程中EditText限制文字输入的方法

    这篇文章主要介绍了Android编程中EditText限制文字输入的方法,涉及Android针对EditText的监听技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    Just run10442021-04-09