ExpandableListView是常用的二级列表,往往需求都会这样设计当点开了一个group,就需要将上一个打开的关闭掉。形成互斥的效果。看了一下api. 发现了一个collapseGroup(int i)的方法,可以关闭group。试了几次没有效果,后来才发现,该方法只能在setOnGroupExpandListener方法中起作用,我表示很尴尬,废话就到这里了,马上给各位看官上代码。
private ExpandableListView mExpandableListView;
private int lastGroupPosition = -1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
mExpandableListView = (ExpandableListView) findViewById(R.id.expand_lv);
mExpandableListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {
@Override
public void onGroupExpand(int groupPosition) {
if(lastGroupPosition >= 0 && lastGroupPosition != groupPosition && mExpandableListView.isGroupExpanded(lastGroupPosition)) {
""" mExpandableListView.collapseGroup(groupPosition);//关闭上一个
打开的
"""
}
lastGroupPosition = groupPosition;
}
});
}
这里就没有给ExpandableListView设置Adapter了哈,这个看官自己补上。
你的支持,是我写博客的动力,谢谢!