美文网首页ZK安卓开发工具箱Android知识Android开发
XStateController,几近完美的状态控制机来袭

XStateController,几近完美的状态控制机来袭

作者: droidlover | 来源:发表于2017-02-05 13:43 被阅读977次

StateController顾名思义:状态控制机,用作几个状态的切换。该控件可以在Loading & Empty & Error& Content四个状态的自定义动画切换。https://github.com/limedroid/XStateController欢迎star。

screenshot.png

使用

 <cn.droidlover.xstatecontroller.XStateController
        android:id="@+id/controller"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:x_emptyLayoutId="@layout/view_empty">
       

        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#854678"
            android:gravity="center"
            android:text="Content"
            android:textColor="@android:color/white"
            android:textSize="28sp" />

    </cn.droidlover.xstatecontroller.XStateController>

说明

  • XStateController仅有一个子view(ViewGroup)时,该子view则为ContentView
  • 可以通过xml属性设置布局,也可代码设置

attrs设置状态布局资源

 <attr name="x_contentLayoutId" format="reference" />
 <attr name="x_loadingLayoutId" format="reference" />
 <attr name="x_emptyLayoutId" format="reference" />
 <attr name="x_errorLayoutId" format="reference" />
  • x_contentLayoutId设置内容布局资源
  • x_loadingLayoutId设置加载中状态的布局资源
  • x_emptyLayoutId设置空状态的布局资源
  • x_errorLayoutId设置错误状态的布局资源

常见api

设置各状态的布局资源

loadingView(loadingView);  //设置加载中的view
emptyView(emptyView);   //设置空view
errorView(errorView);   //设置errorView
contentView(contentView); //设置contentView

状态切换

showLoading();      //切换到loading状态
showError();        //切换到error状态
showEmpty();        //切换到empty状态
showContent();      //切换到content状态

注册状态切换回调

registerStateChangeListener(xx);

回调的定义

public interface OnStateChangeListener {
        //状态切换时回调,oldState当前状态,newState目标状态
        void onStateChange(int oldState, int newState);
        //动画,可自定义切换动画
        void animationState(View exitView, View enterView);
    }

使用时可直接继承SimpleStateChangeListener

相关文章

  • XStateController,几近完美的状态控制机来袭

    StateController顾名思义:状态控制机,用作几个状态的切换。该控件可以在Loading & Empty...

  • 状态机_fsm(Finite State Machine)

    一.状态机 二.个人理解的状态机 三.自己搭建一个状态机 2.状态控制(入口) 3.状态控制(State) 4.动...

  • 无镜--kafka之控制器(二)

    分区状态机和副本状态机 分区状态机和副本状态机需要获取集群中的所有分区和所有副本,控制器上下文会从ZK中读取集群的...

  • 有限状态机

    状态机,控制各个状态。1、各个状态内部,返回要跳转的下一个状态,状态机会自动切换状态;2、也可以外部调用状态机,手...

  • 街上人很少,心里人很多

    状态不好,几近崩溃!

  • [Unity]有限状态机FSM

    概念 1.有限状态机:状态机由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移,是协调...

  • 浅谈TCP(2):流量控制与拥塞控制

    上文浅谈TCP(1):状态机与重传机制介绍了TCP的状态机与重传机制。本文介绍流量控制(Flow Control,...

  • visual-fsm使用说明#更新[2017-08-21]

    1. 开始 状态机是游戏中进行流程控制的一大利器,状态机通常用{当前状态,事件}->{下一状态}的模型来描述流程中...

  • MediaPlayer&VideoView

    阅读原文 Android MediaPlayer状态机 对播放音频/视频文件和流的控制是通过一个状态机来管理的。下...

  • Unity动画综合练习

    前言:对于融合树、状态机(动画状态参数、过渡线)、角色控制器、动画控制器的综合练习 1.实例:使用动画融合树实现原...

网友评论

  • 31fd1feec8a7:版主 你好我想问一下这个东西我可以不用你这里面的RecyclerAdapter?? 我写了一个万能adapter 但是刷新和上拉不行
  • 波波一起飞:也就是说放弃ContentLayout这个类了吧!这完全是为了代替它的
    droidlover:@波波一起飞 是的 升级版
  • 恒等式古怪:支持一下
  • 笔墨Android:版主请问 为什么我添加了下拉刷新的时候showContent()不起作用呢,之前设置了一个showError();
    droidlover:@Angle0o 断网页面显示不下去是啥意思
    笔墨Android:那个我看了,我这边的问题是这样的,我写了一个断网页,然后刷新的时候后状态已经变过来了,但是断网页面一直显示不下去了!
    droidlover:我在demo中新加了这个功能,亲测没问题,你可去看看

本文标题:XStateController,几近完美的状态控制机来袭

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