当我扩展一个新的组时,我可以折叠最后一个扩展的组吗?
发布于 2010-11-30 23:06:16
试着把它放到你的ExpandableListAdapter
中,listView
是对ExpandableListView
本身的引用。lastExpandedGroupPosition
是在ExpandableListAdapter
中定义的整数成员变量。
@Override
public void onGroupExpanded(int groupPosition){
//collapse the old expanded group, if not the same
//as new group to expand
if(groupPosition != lastExpandedGroupPosition){
listView.collapseGroup(lastExpandedGroupPosition);
}
super.onGroupExpanded(groupPosition);
lastExpandedGroupPosition = groupPosition;
}
发布于 2012-11-09 17:55:03
非常有帮助,但正如Anh Tuan在上面的评论中提到的那样,我遇到了ExpandableListView没有滚动回当前选定组的顶部的问题(它会停留在当前滚动的位置,在组的中间的某个位置)。您还需要添加一个onGroupClickListener()来滚动到正确的位置:
@Override
public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition,
long id) {
// Implement this method to scroll to the correct position as this doesn't
// happen automatically if we override onGroupExpand() as above
parent.smoothScrollToPosition(groupPosition);
// Need default behaviour here otherwise group does not get expanded/collapsed
// on click
if (parent.isGroupExpanded(groupPosition)) {
parent.collapseGroup(groupPosition);
} else {
parent.expandGroup(groupPosition);
}
return true;
}
发布于 2013-07-11 14:39:31
This为我工作
expandableList.setOnGroupExpandListener(new OnGroupExpandListener() {
int previousItem = -1;
@Override
public void onGroupExpand(int groupPosition) {
if(groupPosition != previousItem )
expandableList.collapseGroup(previousItem );
previousItem = groupPosition;
}
});
https://stackoverflow.com/questions/4314777
复制相似问题