2017-11-08 9 views
2

私はマルチレベルExpandableListViewを持っています。一度に1つのアイテムだけを展開する必要があります。第二のレベルでは、私はこの方法を使用しましたが、それはうまくいきませんでした:マルチレベルの展開可能リストビューで折り畳みグループが機能しない

simpleExpandableListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() { 
    @Override 
    public void onGroupExpand(int groupPosition) { 
     if (lastExpandedPositions != -1 && groupPosition != lastExpandedPositions) { 
      simpleExpandableListView.collapseGroup(lastExpandedPositions); 
      // getChildView 
     } 
     lastExpandedPositions = groupPosition; 
    } 
}); 

しないのはなぜ方法collapseGroup(lastExpandedPositions)応答?いずれか1つ助けることができる ??

答えて

1

私の問題は解決したと答えは、私はgetchildView()最初のレベルの拡張可能なリストアダプターのメソッドにこのコードを追加した次のコードである:

int lastExpandedPositions=-1; 

simpleExpandableListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() { 
       @Override 
       public boolean onGroupClick(ExpandableListView parent, View view, 
              int groupPosition, long id) { 

        setListViewHeight(parent, groupPosition); 

         parent.smoothScrollToPosition(groupPosition); 

        // Need default behaviour here otherwise group does not get expanded/collapsed 
        if (parent.isGroupExpanded(groupPosition)) { 
         parent.collapseGroup(groupPosition); 

        } else { 
         parent.expandGroup(groupPosition); 
         if (lastExpandedPositions != -1 
           && groupPosition != lastExpandedPositions) { 
          parent.collapseGroup(lastExpandedPositions); 



         } 
         lastExpandedPositions = groupPosition; 
        } 

        return true; 
       } 
      }); 
関連する問題