StateUi

Project Url: 1015156849/StateUi
Introduction: 自己空闲时写的一个小组件,用起来比较简单,目前自己公司的项目也开始用了,目前为止没发现什么问题
More: Author   ReportBugs   
Tags:
显示网络布局-布局-layout-state-ui-状态-StateUi-

=========

这里是 StateUi

你可以用他来减少 在每个 Activity 或者 Fragment 里面去手动添加不同状态的布局

添加依赖

在你的 project 的 build.gradle 中加入

allprojects {
    repositories {

        maven { url 'https://jitpack.io' }
    }
}

然后在你的 app 的 build.gradle 中加入

dependencies {
        compile 'com.github.1015156849:StateUi:0.0.2'
}

或者 查看最新

使用方法

需要使用到的 Activity 请继承

BaseUIActivity

需要使用到的 Fragment 请继承

BaseUIFragment

推荐你去继承一个 StateUi 类,这个类默认有一个

    public static final int ShowDatasView = 0;

你将你所有自定义的状态布局的 layout 放在这里,例如:

    public class myStateUi extends StateUi {

        /**默认有一个 ShowDatasView 该初始值为 0*/
        public static final int LoadView= R.layout.state_ui_load;
        public static final int NoNetView= R.layout.state_ui_no_net;
    }

在使用的时候,你只需要给需要显示的容器设置一个 id,然后调用

    ShowStateUi(位置容器的 id,想显示的 StateUi 布局);

例如:

    /**显示 StateUi(注:该方法中默认先执行了 一次 HideStateUi())*/
    ShowStateUi(R.id.containerView, myStateUi.LoadView);

注意:位置容器只能为 布局,不可以是 Button 等控件

隐藏状态布局

    HideStateUi();

或者

    ShowStateUi(位置容器的 id,StateUi 中的 ShowDatasView);

如果我想给自定义布局设置一些的控件设置监听怎么办?

你可以通过

        setOnClick(StateUi 布局,点击监听,想要设置监听的控件 id 的 List 集合);

例如:

              /**设置点击事件 (注:必须使用 ShowStateUi()显示 该状态布局 后才能对该布局上的控件设置监听)*/
                setOnClick(myStateUi.NoNetView, new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        switch (v.getId()) {
                            case R.id.NoNetView:
                                Toast.makeText(getActivity(), "点击了图片", Toast.LENGTH_SHORT).show();
                                break;
                            case R.id.Button:
                                Log.e(TAG, "点击了按钮");
                                ShowStateUi(R.id.containerView, myStateUi.LoadView);
                                new Handler().postDelayed(new Runnable() {
                                    @Override
                                    public void run() {
                                        ShowStateUi(R.id.containerView, myStateUi.NoNetView);
                                    }
                                }, 3000);
                                break;
                        }
                    }
                }, new ArrayList<Integer>() {{
                    add(R.id.NoNetView);
                    add(R.id.Button);
                }});

附上图片一枚

demo.gif

后言

具体使用方法就如上,如果你还有不太明白的话,可以下载项目查看 demo 和源码

如果你在使用的时候遇到了什么 bug,可以在这里提 issue。😁

这里是个人博客:http://blog.csdn.net/y1015156849 欢迎留言

Apps
About Me
GitHub: Trinea
Facebook: Dev Tools