Показывать только одного ребенка расширяемого списка за раз

Можно ли только развернуть один дочерний элемент ExpandableListView за один раз, таким образом, открытие второго ребенка закроет ранее открытый ребенок?

Solutions Collecting From Web of "Показывать только одного ребенка расширяемого списка за раз"

Я не знаю никаких автоматических методов для этого, но вы можете реализовать 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() который находится в 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; } });