一次仅显示可展开列表的一个子项

是否有可能一次只展开ExpandableListView一个子项,打开第二个子项会closures以前打开的子项?

我没有意识到任何自动方法,但你可以实现ExpandableListView.OnGroupClickListener ,在所有列表组中运行collapseGroup() ,除了被单击的列表组。 这将做你想要的。

只是为了确认bos在代码中的回答:

  expandableList.setOnGroupExpandListener(new OnGroupExpandListener() { int previousGroup = -1; @Override public void onGroupExpand(int groupPosition) { if(groupPosition != previousGroup) expandableList.collapseGroup(previousGroup); previousGroup = groupPosition; } }); 

你也可以简单地使用withOnlyOneExpandedItem()

这是在mikepenz的FastAdapter外部库中

例如,我在我的抽屉中使用它

 drawer.getAdapter().withOnlyOneExpandedItem(true); 

你可以使用这个为各种条件,你想做的扩展名单 –

  expList.setOnChildClickListener(new OnChildClickListener() { @Override public boolean onChildClick(ExpandableListView parent, View v, int childGroupPosition, int childPosition, long id) { // Log.e("OnChildClickListener", "OK "+childGroupPosition+" "+childPosition);javainterviewquestion if(childGroupPosition ==0 && childPosition == 0) { } if(childGroupPosition ==0 && childPosition == 1) { } return false; } });