oschina 2.x疑问

oschina 2.x疑问

拍不死你 发布于 2021-11-26 字数 972 浏览 814 回复 4

@火蚁 你好,想跟你请教个问题:

我是android新手,最近在看oschina 2.x的源码进行学习

ListBaseAdapter  中getCount()方法:

@Override
    public int getCount() {
        switch (getState()) {
        case STATE_EMPTY_ITEM:
            return getDataSize() + 1;
        case STATE_NETWORK_ERROR:
        case STATE_LOAD_MORE:
            return getDataSize() + 1;
        case STATE_NO_DATA:
            return 1;
        case STATE_NO_MORE:
            return getDataSize() + 1;
        case STATE_LESS_ONE_PAGE:
            return getDataSize();
        default:
            break;
        }
        return getDataSize();
    }

不太明白,为什么这几种状态(STATE_EMPTY_ITEM,STATE_LOAD_MORE等)datasize要加1呢?

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

墨洒年华 2021-11-30 4 楼

多谢您的回复,我看 BaseListFragment 也有一些列表的状态,感觉和适配器中的状态有部分重复了,不知道用哪些更好的方式来处理这些状态?

执手闯天涯 2021-11-30 3 楼

回复
我的建议是放在listview中判断他的状态,或者是model封装一层

勿忘初心 2021-11-28 2 楼

回复
看了几天,也试着写了下,总算明白了,多谢了

风苍溪 2021-11-27 1 楼

这种方式就是把列表的状态放到适配器里面做了,如列表数据为空、加载更多、已加载全部这些状态,这种方式比较多局限性,不太建议采用这种方式