是否有可能一次只展开一个ExpandableListView
的孩子,因此打开第二个孩子会关闭之前打开的孩子?
答案 0 :(得分:133)
只是为了在代码中确认bos的答案:
expandableList.setOnGroupExpandListener(new OnGroupExpandListener() {
int previousGroup = -1;
@Override
public void onGroupExpand(int groupPosition) {
if(groupPosition != previousGroup)
expandableList.collapseGroup(previousGroup);
previousGroup = groupPosition;
}
});
答案 1 :(得分:36)
我不知道有任何自动方法,但你可以实现ExpandableListView.OnGroupClickListener
,在所有列表组中运行collapseGroup()
,除了被点击的列表组。这将做你想要的。
答案 2 :(得分:0)
您也可以简单地使用FastAdapter中的withOnlyOneExpandedItem()
在mikepenz的FastAdapter External Library中
例如,我在抽屉中使用它
drawer.getAdapter().withOnlyOneExpandedItem(true);
答案 3 :(得分:-5)
您可以在扩展列表时使用它来实现各种条件 -
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;
}
});