ExpandableListView有一个侦听器,用于检测何时折叠组名为OnGroupCollapsedListener(doc)。无论您在该侦听器中放置什么代码,都会在该组崩溃后调用。
有没有人知道如何在群组崩溃之前调用某些代码?也许是一个BeforeCollapsedListener ???
答案 0 :(得分:4)
您可以使用此简短代码段保存组状态,并在每次单击组时进行检查。在展开和/或折叠组之前注册组点击。
private boolean[] mGroupStates;
@Override
public void onCreate(Bundle savedInstanceState) {
...
mGroupStates = new boolean[mExpAdapter.getGroupCount()]
mExpList.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View v, int groupPos, long id) {
// Switch boolean
mGroupStates[groupPos] = !mGroupStates[groupPos];
// Check expanding or collapsing
if (mGroupStates[groupPos]) {
// group is being expanded
} else {
// group is being collapsed
}
// False will make sure that the click continues with it's operation
return false;
}
});
...
}
答案 1 :(得分:2)
您可以使用onGroupClickListener来触发折叠/扩展自己
ExpandableListView lv ; // init the listView with your stuff
boolean animated = true;
lv.setOnGroupClickListener(new OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
// do your stuff
lv.expandGroup(groupPosition, animated);
// let system handle event
return false;
}