如何在expandablelistview中折叠组视图上方和下方的所有子视图?

Posted

技术标签:

【中文标题】如何在expandablelistview中折叠组视图上方和下方的所有子视图?【英文标题】:How to collapse all the childviews above and below of a groupview in expandablelistview? 【发布时间】:2019-02-13 23:40:14 【问题描述】:

我正在尝试创建一个联系人列表应用程序。我采用了一个可扩展的列表视图,其布局作为每个组(联系人)的子视图。当我点击联系人(groupView)时,孩子会展开(布局)。现在当我点击另一个联系人时,我希望之前展开的组被折叠..有人可以帮忙吗?

【问题讨论】:

欢迎来到 Stack Overflow!请参观并通读帮助中心,特别是如何提问。你最好的选择是做你的研究,搜索关于 SO 的相关主题,然后试一试。在进行更多研究和搜索后,发布一个最小的、完整的和可验证的尝试示例,并具体说明您遇到的问题,这可以帮助您获得更好的答案! 【参考方案1】:

将当前展开的组位置存储在一个变量中。在 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;
    
);

【讨论】:

以上是关于如何在expandablelistview中折叠组视图上方和下方的所有子视图?的主要内容,如果未能解决你的问题,请参考以下文章

GetChildView 在折叠和展开 ExpandableListView 时得到刷新

ExpandableListView 组视图 展开默认

将焦点保存在 ExpandableListView 中的展开组上

如何检查组是不是在 Android ExpandableListView 中展开或折叠?

android开发如何实现折叠菜单类似qq分组?

255ExpandableListView(可折叠列表)的基本使用