2013-01-31 15 views
5

私は、2つのカーソルを使用してexpandableListを取得しました.1つはグループ用、もう1つはグループ関連の子用です。 ユーザーはこの拡張可能リストでフィルタ(アルファベット・デクサー)を使用できます。 子供(アイコンだけでなく)がいない場合、私はグループビューを完全に削除したいと思います。それは私が空のグループの行を削除するようなものです。ExpandableList内のグループビューを非表示にする

私はbindgroupviewメソッドで表示を設定しようとします。私はグループビューのレイアウトの高さを設定しようとします....結果は同じですが、スペースはまだ保持されて表示されます。

この機能を使用することはできますか?以下

いくつかのコード:

// mMapSeqArticle is TreeMap<Object, ArrayList<Object>) 
mSequenceAdapter = new SequenceCommandeAdapter(getActivity(), mMapSeqArticle); 

public class SequenceCommandeAdapter extends BaseExpandableListAdapter { 
     Object[] mGroupSeq = null; 
     Map<Sequence, ArrayList<TicketArticle>> mContent; 

     public SequenceCommandeAdapter(Context c, 
       Map<Sequence, ArrayList<TicketArticle>> map) { 
      mContent = map; 
      mGroupSeq = mContent.keySet().toArray(); 
     } 

     @Override 
     public Object getChild(int groupPosition, int childPosition) { 
      Sequence s = (Sequence) mGroupSeq[groupPosition]; 
      return ((ArrayList<TicketArticle>) (mContent.get(s))) 
        .get(childPosition); 
     } 

     @Override 
     public long getChildId(int groupPosition, int childPosition) { 
      Sequence s = (Sequence) mGroupSeq[groupPosition]; 
      return ((ArrayList<TicketArticle>) (mContent.get(s))) 
        .get(childPosition).mId; 
     } 

     @Override 
     public View getChildView(int groupPosition, int childPosition, 
       boolean isLastChild, View convertView, ViewGroup parent) { 
      // retrouve la valeur de la sequence 
      TicketArticle ta = (TicketArticle) getChild(groupPosition, 
        childPosition); 
      if (convertView == null) { 
       convertView = LayoutInflater.from(getActivity()).inflate(
         R.layout.adapter_row_article_details_table, null); 
      } 



      convertView.setTag(groupPosition + ":" + childPosition); 
      return convertView; 
     } 

     @Override 
     public int getChildrenCount(int groupPosition) { 
      Sequence s = (Sequence) mGroupSeq[groupPosition]; 
      return ((ArrayList<TicketArticle>) (mContent.get(s))).size(); 
     } 

     @Override 
     public Object getGroup(int groupPosition) { 
      return (Sequence) mGroupSeq[groupPosition];// mContent.get(groupPosition); 
     } 

     @Override 
     public int getGroupCount() { 
      return mContent.size(); 
     } 

     @Override 
     public long getGroupId(int groupPosition) { 
      return ((Sequence) mGroupSeq[groupPosition]).key; 
     } 

     @Override 
     public View getGroupView(int groupPosition, boolean isExpanded, 
       View convertView, ViewGroup parent) { 
      if (convertView == null) { 
       convertView = LayoutInflater.from(getActivity()).inflate(
         R.layout.adapter_header_sequence_details_table, null); 
      } 


      convertView.setTag(null); 
      return convertView; 
     } 

     @Override 
     public boolean hasStableIds() { 
      // TODO Auto-generated method stub 
      return false; 
     } 

     @Override 
     public boolean isChildSelectable(int groupPosition, int childPosition) { 
      // TODO Auto-generated method stub 
      return true; 
     } 
    } 

答えて

0

は、私はあなたのコード内でbindGroupView方法が表示されていないが、あなたは正しい軌道に乗っているようにあなたが説明した内容から、それが聞こえます。私はグループの行が展開可能なリストビューから完全に消えるように、GONEのすべてのサブビュー(レイアウトを含む)の可視性を設定する必要があります。それ以外の場合は、空の行が残ります。

R.layout.adapter_header_sequence_details_tableの内容を投稿すると、GONEを作成するために必要な他のものがわかります。

関連する問題