android ExpandableListView 删除 出现重复数据

首先,我先阐述下,用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遗留下来的问题。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值