我将数组列表传递给我的可扩展列表适配器。当我从arraylist中的特定位置删除一个元素,然后用notifyDataSetChanged()通知适配器时,我在可扩展列表视图中没有得到正确的grp状态。
代表:
1-我的排列表有5个元素,而阿帕德显示了5个视图。
最初,所有的组织都将处于崩溃状态。
3-我正在扩大第一组。grp 1-膨胀,grp 2-塌陷,grp 3-塌陷,grp 4-塌陷,grp 5-塌陷.
现在我要删除第一个grp。删除后,我的数组将有4个元素,grp 2变成grp1,grp 3变成grp 2等等。
5-删除后,grp的正确状态是grp 1-塌陷,grp 2-塌陷,grp 3-塌陷,grp 4-塌陷,而不是我得到的,它的状态是grp 1-扩展,grp 2-塌陷,grp 3-塌陷,grp 4-崩溃
为什么grp 1 (prev是grp 2)会被扩展?它应该处于崩溃状态。
我认为这是一个很小的问题,但我无法找到解决办法。请提出解决办法。如能尽早回复,我们将不胜感激。
发布于 2014-10-06 16:06:00
当您调用notifyDataSetChanged()时,您会让适配器知道数据已经更改,但是它没有告诉任何有关视图的信息。因此适配器记住第一个组是展开的,当您将更改通知适配器时,它接受新数据并将其填充到ExpandableListView中,从而保持第一个组展开。
一种解决方案是手动控制展开的组,请参见这里(查看恢复状态):https://stackoverflow.com/a/10905158/2197087
https://stackoverflow.com/questions/26219962
复制相似问题