我正在尝试创建一个联系人列表应用程序。我采用了一个可扩展的列表视图,并以布局作为每个组(联系人)的子视图。当我单击联系人(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;
    }
});

09-30 18:17