折叠组在多级可展开列表视图中不起作用



>我有一个多级ExpandableListView。我一次只需要展开一个项目。在第二关,我使用了这种方法,但它不起作用:

simpleExpandableListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {
    @Override
    public void onGroupExpand(int groupPosition) {
        if (lastExpandedPositions != -1 && groupPosition != lastExpandedPositions) {
            simpleExpandableListView.collapseGroup(lastExpandedPositions);
            // getChildView
        }
        lastExpandedPositions = groupPosition;
    }
});

为什么该方法collapseGroup(lastExpandedPositions)响应?有人可以帮忙吗?

我的问题解决了,答案在下面的代码中 我将这段代码添加到第一级可扩展列表适配器的getchildView()方法中:

int  lastExpandedPositions=-1;
simpleExpandableListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
                @Override
                public boolean onGroupClick(ExpandableListView parent, View view,
                                            int groupPosition, long id) {
                    setListViewHeight(parent, groupPosition);
                       parent.smoothScrollToPosition(groupPosition);
                    // Need default behaviour here otherwise group does not get expanded/collapsed
                    if (parent.isGroupExpanded(groupPosition)) {
                        parent.collapseGroup(groupPosition);
                    } else {
                        parent.expandGroup(groupPosition);
                        if (lastExpandedPositions != -1
                                && groupPosition != lastExpandedPositions) {
                          parent.collapseGroup(lastExpandedPositions);

                        }
                        lastExpandedPositions = groupPosition;
                    }
                    return true;
                }
            });

最新更新