天天看點

【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. });