Android问题汇总(遥远的回忆过去)

Android-全局转圈轻量级控件StateView(小萌新一直

2019-08-14  本文已影响96人  MonkeyLei

项目也是一直在用这个全局的,比较轻量,对于我来说,简洁实用就好。 附上地址:nukc/StateView 。大家肯定有别的,甚至好多人都是自己写就好了,小萌新懂的,小萌新这里简单记录下导入模块的一些问题处理,以及尝试去做一些修改,同时也能看看别人开源项目的源码,好好向别人学习啥的!

之前用的时候直接自动导入的:

image

使用简单(一般注册到布局的根View就可以了。根View没有名字的可以自定义一个id获取就行 。 小萌新基本都是需要在哪个view上就注册给哪个就行):

image

它有个缺点就是,如果当前没有数据,我设置了mStateView.showEmpty(), 空视图的情况下,这种情况不能点击重试 - 因为后台有可能立即添加了一条,但是用户还保持当然空数据视图页面,所以我需要这种情况也触发点击刷新,因此需要在模块上也增加点击重试(直接导入模块,加入和showRetry相同的处理即可)。

(小萌新没有导入module之前,也可以加,不过都是找到控件再添加的,那样不好,和StateView模块分离了,没有整体性)

压缩包下载下(如果不知道导入哪个模块,很简单,看下工程模块下的settings.gradle):

image

所以下载文件夹后导入如下两个模块即可:

image

1. 导入模块后,app依赖这两个模块

image

2. 然后删除library下的build.gradle中的最后一句(因为我不做git发布,所以不需要,否则你还要依赖这个配置)

image

3. 然后animations模块下的bintray.gradle自然也就把它删除了....

image image

3. 然后找到library模块下的showRetry方法下的关于重试点击事件的处理部分

image

4. 然后将其处理完全可以复制一份到空数据视图的情况

   public View showEmpty() {
        if (mEmptyView == null) {
            mEmptyView = inflate(mEmptyResource, EMPTY);
            mEmptyView.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (mRetryClickListener != null) {
                        showLoading();
                        mEmptyView.postDelayed(new Runnable() {
                            @Override
                            public void run() {
                                mRetryClickListener.onRetryClick();
                            }
                        }, 400);
                    }
                }
            });
        }

        showView(mEmptyView);
        return mEmptyView;
    }

基本上OK了! 这样我们如果判断首次请求列表数据为空的情况就可以设置showEmpty,然后点击事件就可以和重试一下,走下刷新逻辑:

image

逻辑的地方设置一下空视图就好

image

到此基本上就可以。小萌新们开始自己的新项目前,可以把基础的结构搭起来,像依赖注入,eventbus呀这些,像Glide、Rx家族,像下拉刷新,上拉加载这些也可以添加上。然后把基本的结构,底部菜单都弄好,把自己封装的通用网络,通用适配器都可以整上,做项目也要实践提升自己方可成就更多。 还可以把公司可能用的分享、推送配置上。 基本逻辑都完事,到时候做项目之间就来,过程中还可以完善相关配置。

好了,先到这里吧。。。。记录下就好。加油,么么哒!

上一篇 下一篇

猜你喜欢

热点阅读