2013-01-31 16 views
5

İki imleç kullanarak bir genişletilebilirListüm var: grup için 1, grupla ilgili çocuklar için başka. Kullanıcı bu genişletilebilir listede bir filtre (alphaindexer) kullanabilir. Çocuksuzken grup görünümünü tamamen silmek istiyorum (sadece ikon :) değil). Boş grup için çizgiyi sildiğim gibi.Grup Görünümünü Gizle ExpandableList

Görünürlüğü bindgroupview yöntemine girmeye çalışıyorum. Grup görünümü için düzen yüksekliğini ayarlamaya çalışıyorum .... Sonuç aynı, alan hala tutuluyor ve görüntüleniyor.

Mümkün ve bu özelliği nasıl yapabilirim? Aşağıda

Bazı kod:

// 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; 
     } 
    } 

cevap

0

ben kodunuzda bindGroupView yöntem görmüyorsanız, ancak doğru yolda konum gibi tarif kadarıyla, bu sesler. Grup satırının genişletilebilir liste görünümünden tamamen kaybolması için GONE'nin tüm alt görünümlerinin (düzenler dahil) görünürlüğünü ayarlamak zorundayım. Aksi halde boş satır kalır.

R.layout.adapter_header_sequence_details_table içeriğini yüklerseniz, GONE yapmak için ihtiyacınız olan diğer şeyler hakkında daha iyi bir fikrim olur.