@@ -585,23 +585,22 @@ private void innerRemoveNode(NodeModel<?> nodeModel, boolean isRemoveChildNodesO
585585 if (adapter !=null ){
586586 if (isAnimateRemove ()){
587587 recordAnchorLocationOnViewPort (true ,isRemoveChildNodesOnly ,nodeModel );
588- }
589- if (isRemoveChildNodesOnly ){
590- nodeModel .traverseChildren (next ->adapter .getTreeModel ().removeNode (nodeModel , next ));
591- }else {
592- adapter .getTreeModel ().removeNode (nodeModel .getParentNode (), nodeModel );
593- }
594-
595- mTreeModel .calculateTreeNodesDeep ();
596- if (isAnimateRemove ()){
597- requestLayout ();
588+ if (isRemoveChildNodesOnly ){
589+ nodeModel .traverseDirectChildren (next ->adapter .getTreeModel ().removeNode (nodeModel , next ));
590+ }else {
591+ adapter .getTreeModel ().removeNode (nodeModel .getParentNode (), nodeModel );
592+ }
598593 }else {
599594 if (isRemoveChildNodesOnly ){
600- nodeModel .traverseChildren (this ::removeViewByNode );
595+ nodeModel .traverseExcludeSelf (this ::removeViewByNode );
596+ nodeModel .traverseDirectChildren (next ->adapter .getTreeModel ().removeNode (nodeModel , next ));
601597 }else {
602- nodeModel .selfTraverse (this ::removeViewByNode );
598+ nodeModel .traverseIncludeSelf (this ::removeViewByNode );
599+ adapter .getTreeModel ().removeNode (nodeModel .getParentNode (), nodeModel );
603600 }
604601 }
602+ mTreeModel .calculateTreeNodesDeep ();
603+ requestLayout ();
605604 }
606605 }
607606
@@ -630,11 +629,11 @@ private void recordAnchorLocationOnViewPort(boolean isRemove, boolean isRemoveCh
630629 //if remove, parent will be the target node
631630 Map <NodeModel <?>,View > removeNodeMap = new HashMap <>();
632631 if (isRemoveChildrenOnly ){
633- targetNode .traverseChildren (node -> {
632+ targetNode .traverseExcludeSelf (node -> {
634633 removeNodeMap .put (node ,getTreeViewHolder (node ).getView ());
635634 });
636635 }else {
637- targetNode .selfTraverse (node -> {
636+ targetNode .traverseIncludeSelf (node -> {
638637 removeNodeMap .put (node ,getTreeViewHolder (node ).getView ());
639638 });
640639 targetNode = targetNode .getParentNode ();
0 commit comments