protected boolean toggleChildVisibility(long itemId) {
for (int i = 0; i < items.size(); i++) {
if (items.get(i).getParentItemId() == itemId) {
Item childItem = items.get(i);
childItem.setCollapsed(!childItem.isCollapsed());
toggleChildVisibility(childItem.getItemId());
}
}
}
我有一个项目列表,每个项目都是子项目或父项目。根父项的 parentId 等于 0,子项的 parentId 等于其父项的 id。
子项也可以在其下方有子项。
我需要做这样的事情。如果我单击其中一个项目,我需要它的所有子项在它们展开时折叠或在它们折叠时展开。
除了一件事,我的代码有效。假设我折叠一个孩子的子项,然后我折叠一个父母,其孩子是我已经折叠的孩子之一。然后那些孩子扩大,但我不希望他们扩大,因为我刚刚试图折叠他们更高的父母。
谁能帮我解决这个问题
public class Item {
long questionId;
int depth;
boolean collapsed,childrenCollapsed;
public boolean isChildrenCollapsed() {
return childrenCollapsed;
}
public void setChildrenCollapsed(boolean childrenCollapsed) {
this.childrenCollapsed = childrenCollapsed;
}
public boolean isCollapsed() {
return collapsed;
}
public void setCollapsed(boolean collapsed) {
this.collapsed = collapsed;
}
public long getDepth() {
return depth;
}
public void setDepth(int depth) {
this.depth = depth;
}
}