2011-10-22 17 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 External Libraryでmikepenz

たとえば、私が引き出しに使用しているように、

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

は、単にコードでBOSの答えを確認する - あなたは、リストの拡大に​​やりたいよう

+3

。私にとっては、その作業。Thankq仲間。 –

+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 –

関連する問題