您的位置:首页 > 移动开发 > Android开发

android ExpandableListView 删除 出现重复数据

2017-05-16 09:48 429 查看
首先,我先阐述下,用ExpandableListView 出现的问题。ExpandableListView 在第一次加载数据的时候,数据可以正常显示,但是当我删除上一个group的时候,然后调用 notifyDataSetChanged(); 发现最后一个group 的 childView 重复了一个,折腾了很久了,解决不了(因为已经知道,是控件本身的问题), 后续到谷歌官网查看,没找到有用信息,再到github上下载类似的demo,嘿嘿,还是没找到,那怎么办呢,换其他控件,但我这是在维护一个老的项目,改动较大,思来想去,那只有看它源码,在通过继承方式,覆盖相关函数,结果出乎意料,发现了,一个函数,瞬间解决。解决方案如下:

@Override
public long getGroupId(int arg0) {
return arg0;
}

@Override
public long getChildId(int arg0, int arg1) {
return getCombinedChildId(arg0,arg1);
}


就改这两个地方就ok了。是不是比百度上的什么解决方案,简单多了。

下面是对getCombinedChildId函数的讲解:



If you foresee a clash in IDs based on this scheme:若果你的ids冲突了,可以基于这个方案。

ps:其实,完全没必要用ExpandableListView ,现在RecycleView 已经修复了很多之前listview遗留下来的问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐