一开始用这个方法将node从集合中删除,但是调试结果node一直存在,经检查才发现,mNodeDatas.removeAll(deleteNode)这行代码的返回值竟然是false。
为什么会这样呢?
原因是node里面有个变量isExpanded,此时的node里isExpanded的值为true,而mNodeDatas里的node的isExpanded的值却为false,这就导致两个node不是同一个!
解决办法也很简单,在Node类里添加一个方法:
这个方法的作用就是让两个node比较的时候只比较node里面的name属性,只要两个node的name一样,就可以让removeAll或remove返回true,不过在实际运用的时候有个前提,就是name的值必须是唯一的。