【Android】StateUi 框架

很多android项目一旦接触了网络,就肯定跟状态布局打交道,我的这个StateUi就是专门为了尽可能简化,避免写一个界面就要添加状态布局的引用,采用了纯动态添加的方式将你预设的布局加载到界面上。


添加依赖

在你的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和源码

如果你在使用的时候遇到了什么bug或者好的建议,可以在提issue,或者给我留言。

附上源码地址:
https://github.com/1015156849/StateUi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值