项目中有个界面展示一个listview,listview的顶部还有一个布局。这里很自然的就给listview添加个headview,但是在测试的时候,发现当adapter的数据为空的时候,这个headview就消失了。而这个headview是需要一直展示的,这就让我有事做了。。。
在我查看BaseAdapter和HeaderViewListAdapter的源码后,十分确信在添加了headview之后,即使adapter的数据为空,这个listview还是可以展示headview的。那么可能是listview被隐藏了,我最开始怀疑的是我用的第三方下拉刷新的框架,但是很快就排查了不是。然后我把目光定位到了emptyView上,果不其然,就是这个emptyView捣的鬼。
以下是listview更新emptyView状态的部分源码:
可以看到,在数据为空的时候,listview将emptyView显示,同时隐藏自己!!!
真的是。。。。因吹斯听
为了解决这个问题看来只能自己写headview的逻辑了。
Android开发真是好玩啊!