美文网首页
StatusLayout 2.0 一个超高自定义度的页面状态管理

StatusLayout 2.0 一个超高自定义度的页面状态管理

作者: Colaman丶 | 来源:发表于2021-07-29 23:11 被阅读0次

    基于StatusLayout1.0的功能进行了一次改进和调整,更好去适应业务场景减少工作,高自由定制不局限于Loading Error等布局,尽可能减少不必要的重复代码设置以及引入成本,更方便简单地在已有的页面中引入StatusLayout

    StatusLayout有以下几个优点

    • 自由定制需要的状态以及对应布局,只需要一行代码
    • 可以定制动画效果
    • 可以用在旧项目上,不需要修改原有xml文件
    • 可设置全局属性避免重复劳动

    引入依赖

    Github地址: https://github.com/Colaman0/StatusLayout

        allprojects {
            repositories {
                ...
                maven { url 'https://jitpack.io' }
            }
        }
    
        dependencies {
                implementation 'com.github.Colaman0:StatusLayout:2.0.0'
        }
    

    效果图

    a3f8c681047a410f866cb7f5793e4244_tplv-k3u1fbpfcp-zoom-1.gif

    使用方式

    1. 一行代码就可以实现原有View,方便在旧项目中引用

      只需要调用wrapView 方法传入view,即可返回一个StatusLayout,并且把View的位置替换成StatusLayout,把View作为Status.Normal 状态的布局,也就是默认布局。
      方便在旧项目中去引用,只需要传入某个view就可以了,不需要在xml里手动替换,减少接入成本

    2. 支持自定义多种页面切换,自由灵活定制

      1. 首先通过addStatus方法传入StatusStatusConfig ,完成添加状态页面布局
        • Status表明当前页面的状态类型
        • StatusConfig 包含页面的相关内容比如View和点击事件的View id
      2. 在切换布局的时候调用switchLayout切换不同Status的页面
    3. 支持不同页面的点击事件回传,支持单个页面多个view的点击回调

      通过setLayoutActionListener传入监听器,在onLayoutAction方法里获取到点击事件触发时当前页面的Status以及对应的View

    4. 支持设置布局切换的动画

      通过setLayoutAnimation方法传入页面进入以及退出的动画效果,默认是渐隐式动画

    5. 支持设置全局配置,相同状态页面可以不用多次重复配置

      • setGlobalData 传入全局数据集合,数据内容和addStatus 一致
      • setGlobalAnim 设置全局的页面切换效果,setLayoutAnimation是针对单个做定制

    整个库的核心想法就是通过Status来管理页面,StatusLayout只负责管理你添加进来的布局,以及对应切换某个Status的布局。并不会限制得很死要调用某个方法,所以你可以尽情得自定义你的页面,添加各种各样的布局进去,然后通过switchLayout()来切换布局就可以了。

    相关文章

      网友评论

          本文标题:StatusLayout 2.0 一个超高自定义度的页面状态管理

          本文链接:https://www.haomeiwen.com/subject/mcxqvltx.html