2011-10-22 70 views

回答

35

我不知道任何自動方法,但您可以執行ExpandableListView.OnGroupClickListener,在所有列表組中運行collapseGroup()以外的所有列表組。這將做你想要的。

expandableList.setOnGroupExpandListener(new OnGroupExpandListener() { 
     int previousGroup = -1; 

     @Override 
     public void onGroupExpand(int groupPosition) { 
      if(groupPosition != previousGroup) 
       expandableList.collapseGroup(previousGroup); 
      previousGroup = groupPosition; 
     } 
    }); 
+19

更好的使用它,使用'ExpandableListView.OnGroupExpandListener'類。此外,您可以跟蹤最後一個展開的組,並在展開下一個展開組時摺疊它(以防止在任意數量的列表項上調用collapseGroup())。 –

+0

好點,Jason。沒想到 – bos

+0

謝謝你們,今晚我會嘗試一下你們的建議! –

-5

,只要你想在列表的擴展你可以使用這個用於各種條件這是在FastAdapter

FastAdapter External Library由mikepenz

例如,因爲我在我的抽屜裏

drawer.getAdapter().withOnlyOneExpandedItem(true); 
119

只是爲了確認BOS的答案代碼 -

+3

好。它爲我工作。Thankg bro。 –

+0

很棒的答案它爲我工作... – Karthik

+0

真棒...謝謝兄弟 – Manjunath

0

你也可以簡單的使用withOnlyOneExpandedItem()

 expList.setOnChildClickListener(new OnChildClickListener() 
     { 
     @Override 
     public boolean onChildClick(ExpandableListView parent, View v, 
      int childGroupPosition, int childPosition, long id) { 

     // Log.e("OnChildClickListener", "OK "+childGroupPosition+" "+childPosition);javainterviewquestion 
      if(childGroupPosition ==0 && childPosition == 0) 
      { 

      } 
      if(childGroupPosition ==0 && childPosition == 1) 
      { 

      } 

      return false; 
     } 
     }); 
+0

據我所知在ExpandableListVeiw中沒有這種方法。 –

+0

對不起,我忘記了我正在閱讀的源代碼是針對外部庫的,在這裏也是鏈接,如果對它感興趣的話https://github.com/sathishmscict/FastAdapter/blob/master/library/src/main/java /com/mikepenz/fastadapter/FastAdapter.java –

相關問題