android - 如何在将折叠的组更改为在 ExpandableListView 中展开后折叠所有其他展开的组?

标签 android expandablelistview

我使用自定义适配器创建了一个 ExpandableListView,并且一切正常,包括单击、折叠和展开事件。如果有人需要有关可扩展 ListView 的帮助,我遵循了以下教程:http://www.androidhive.info/2013/07/android-expandable-list-view-tutorial/ .

我现在想在我的 setOnGroupExpandListener 方法中编写代码,以折叠除当前关注的组之外的所有其他打开的组。 (内容感知 - 在某种意义上)澄清一下,如果我有以下内容:

项目 1

  • 子项目 1
  • 子项目 2

项目 2

  • 子项目 1

项目 3

  • 子项目 1
  • 子项目 2

如果我单击项目 1,它应该展开项目 1(这已经有效)并且应该为我折叠项目 2 和项目 3 组。这可能吗?我该如何实现?

这是我当前的 setOnGroupExpandListener:

    gpsMenuListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {
        @Override
        public void onGroupExpand(int groupPosition) {
            Toast.makeText(getApplicationContext(), "Expanded: " + gpsMenuListDataHeader.get(groupPosition).toString(), Toast.LENGTH_SHORT).show();
        }
    });

如您所见,我目前只有一个打印消息的 Toast,但我想添加折叠功能。

最佳答案

listView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {
            @Override
            public void onGroupExpand(int groupPosition) {
                YourExpandableListAdapter customExpandAdapter = (YourExpandableListAdapter)listView.getExpandableListAdapter();
                if (customExpandAdapter == null) {return;}
                for (int i = 0; i < customExpandAdapter.getGroupCount(); i++) {
                    if (i != groupPosition) {
                        listView.collapseGroup(i);
                    }
                }
            }
        });

关于android - 如何在将折叠的组更改为在 ExpandableListView 中展开后折叠所有其他展开的组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32189807/

相关文章:

Android:如何通过 Gradle 从控制台部署到 Fabric(CrashLytics Beta)?

android - Room - 为什么使用@Relation 而不是@ForeignKey?

android - 底部导航图标在 Android 和 iOS 中显示为正方形

android - ExpandableListView onExpand 总是将展开的组滚动到顶部

android - 使用 expandablelistview 在 android 中的另一个组中动态创建组。

android - 适用于 Android 的单声道 - ExpandableListView

android - 一个 ExpandableListView 的多种布局

javascript - Cordova 网络和相机 API 返回未定义

android - Paypal Android SDK - INTERNAL_SERVER_ERROR

Android 可扩展列表,示例,错误