android ExpandableListView 删除 出现重复数据

来源:互联网 发布:张爱玲 红楼梦魇知乎 编辑:程序博客网 时间:2024/06/18 05:36

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

@Overridepublic long getGroupId(int arg0) {    return arg0;}@Overridepublic 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遗留下来的问题。

阅读全文
1 0
原创粉丝点击