我正在尝试创建一个联系人列表应用程序。我采用了一个可扩展的列表视图,并以布局作为每个组(联系人)的子视图。当我单击联系人(groupView)时,孩子将展开(布局)。现在,当我单击另一个联系人时,我希望折叠以前的展开组..有人可以帮忙吗?
最佳答案
将当前展开的组位置存储在变量中。在onGroupExpanded中,执行以下操作。 lastExpandedPosition包含最近展开的子级
private int lastExpandedPosition = -1;
private ExpandableListView lv; //your expandable listview
...
lv.setOnGroupExpandListener(new OnGroupExpandListener() {
@Override
public void onGroupExpand(int groupPosition) {
if (lastExpandedPosition != -1
&& groupPosition != lastExpandedPosition) {
lv.collapseGroup(lastExpandedPosition);
}
lastExpandedPosition = groupPosition;
}
});