天天看点

【ExpandableListView】ExpandableListView互斥展开效果

ExpandableListView有很多项,展开一项则另一个展开的项关闭, 就像两个项互斥。每次只能有一个项目是展开的。

重载onGroupExpand函数,做一下控制就好了,代码如下:

//复写Adapter方法,

//isGroupExpanded(groupPosition)&collapseGroup(i) 都是ExpandableListView的方法,最好将此对象以参数传递

方法一:

[java] 

view

plain

copy print ? https://code.csdn.net/snippets/78705 https://code.csdn.net/snippets/78705/fork

  1. 重载onGroupExpand函数,做一下控制就好了,代码如下:  
  2. @Override  
  3. public void onGroupExpand(int groupPosition) {  
  4. // TODO Auto-generated method stub  
  5.    for (int i = 0; i < mArtistAdapter.getGroupCount(); i++) {  
  6.     // ensure only one expanded Group exists at every time  
  7.     if (groupPosition != i &&isGroupExpanded(groupPosition)) {  
  8.         collapseGroup(i);  
  9.        }  
  10.     }  
  11. }  

方法二:

实现

https://code.csdn.net/snippets/78705 https://code.csdn.net/snippets/78705/fork
  1. ExpandableListView.setOnGroupExpandListener(new OnGroupExpandListener() {  
  2.      for (int i = 0; i < mProductClassFirstAdapter.getGroupCount(); i++) {  
  3.       // ensure only one expanded Group exists at every  
  4.          if (groupPosition != i) {  
  5.           mProductFirstListView.collapseGroup(i);  
  6.         }  
  7. });