YCStateLayout

Introduction: 状态切换,让 View 状态的切换和 Activity 彻底分离开。用 builder 模式来自由的添加需要的状态 View,可以设置有数据,数据为空,加载数据错误,网络错误,加载中等多种状态,并且支持自定义状态的布局。。目前已经用于新芽正式项目中,拓展性强!!
More: Author   ReportBugs   
Tags:

目录介绍

  • 1.关于界面切换状态介绍
  • 2.思路转变
  • 3.如何使用
  • 4.该工具的优点
  • 5.实现效果
  • 6.版本更新说明
  • 7.其他

1.关于界面切换状态介绍

  • 怎样切换界面状态?有些界面想定制自定义状态?状态如何添加点击事件?下面就为解决这些问题!
  • 内容界面
  • 加载数据中
  • 加载数据错误
  • 加载后没有数据
  • 没有网络

2.思路转变,抽取分离类管理几种状态

  • 以前做法:
  • 直接把这些界面 include 到 main 界面中,然后动态去切换界面,后来发现这样处理不容易复用到其他项目中,而且在 activity 中处理这些状态的显示和隐藏比较乱 利用子类继承父类特性,在父类中写切换状态,但有些界面如果没有继承父类,又该如何处理
  • 现在做法:
  • 让 View 状态的切换和 Activity 彻底分离开,必须把这些状态 View 都封装到一个管理类中,然后暴露出几个方法来实现 View 之间的切换。 在不同的项目中可以需要的 View 也不一样,所以考虑把管理类设计成 builder 模式来自由的添加需要的状态 View

3.如何使用

  • 3.1 首先在集成:cn.yc:YCStateLib:1.0
  • 3.2 代码中设置
    statusLayoutManager = StateLayoutManager.newBuilder(this)
                  .contentView(R.layout.base_bga_recycle_list)
                  .emptyDataView(R.layout.view_custom_empty_data)
                  .errorView(R.layout.view_custom_data_error)
                  .loadingView(R.layout.view_custom_loading_data)
                  .netWorkErrorView(R.layout.view_custom_network_error)
                  .build();
    

4.关于该状态切换工具优点分析

  • 可以自由切换内容,空数据,异常错误,加载,网络错误等 5 种状态
  • 父类 BaseActivity 直接暴露 5 中状态,方便子类统一管理状态切换
  • 倘若有些页面想定制状态布局,也可以自由实现,很简单

5.实现效果

6.版本更新说明

  • v1.0
  • v1.1 更新于 2017 年 12 月 3 日
Support Me
Apps
About Me
Google+: Trinea trinea
GitHub: Trinea