我使用自定义适配器创建了一个 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/