解决expandableListView.setEmptyView(View view)无效的问题

做andorid开发,遇到了一个很奇怪的现象。listView.setEmptyView()有效果,但expandableListView.setEmptyView(View view)却没有效果。两者都是继承了AdapterView,一直让人百思不得其解。于是google了一下,几乎大部分的文章都在强调,你的emptyView没有在当前的View hibernate下,所以setEmptyView()无效。但是我的expandableListView的emptyView和listView的emptyView一样,都是在同一层次上,却还是无效。

后来没有办法,调试代码,看看到底是哪里出了问题。一看吓一跳,发现setEmptyView(View view)的方法,根本就没有跳转到AdapterView的相应的方法中去,再次对比listView和expandableListView的不同,发现两者也就是Adapter不一样了。到这儿,终于确定问题出在哪儿了。expandbleListView中有一个isEmpty()的方法,默认是return false;将其重写:

  @Override
public boolean isEmpty() {
    if (getGroupCount() == 0) {
        return true;
    } else {
        return false;
    }
}

当getGroupCount()==0的时候,返回true,其它返回false就可以了。原来犯了这么简单的错误,还折腾了这么久,特此以记之。

你可能感兴趣的:(解决expandableListView.setEmptyView(View view)无效的问题)