2011-07-27 11 views
7

UI tasarımı için genişletilebilirListView kullanıyorum, bu yüzden Android genişletilebilir liste görünümünü merak ediyorum, yalnızca bir liste öğesinin genişlemesine izin vermenin bir yolu var, yani bir öğeyi tıklatıp genişlettiğinizde, diğer tüm öğeler otomatik olarak daraltılır.Genişletilebilir ListView

Teşekkür

+1

Kullanım cevap: // stackoverflow. com/questions/4314777/programsal olarak daraltma-a-group-in-expandablelistview – Londeren

+1

Aradığınızı yapan başka bir soruya bazı kodlar koydum: http: //stackoverflow.com/questions/4314777/programmatically-collapse- bir grup-in-expandablelistview/4315162 # 4315162 – danh32

cevap

10

Eğer döngü kalanında ve sadece tıklanan bir haricinde her biri daraltmak olabilir tek bir öğe ... tıkladığınızda

list.setOnGroupExpandListener(new OnGroupExpandListener() { 

    public void onGroupExpand(int groupPosition) { 
     int len = mAdapter.getGroupCount(); 

     for(int i=0; i<len; i++) { 
      if(i != groupPosition) { 
       list.collapseGroup(i); 
      } 
     } 
    } 

}); 
1
Sen kieran önerdi yapın veya eğer olabilir

Sadece bir seferde açık bir tane var, sadece en son tıklandığınızı takip edebilirsiniz. Korece önerildiği gibi, list.collapseGroup(lastclicked)

'u koyduktan sonra sınıf gövdesinde int lastclicked bildirerek bunu yapabilirim, ancak bir kod örneği verirdim ancak cep telefonumdayım. Afedersiniz.

Ancak bunu yapmak için lastclicked yöntemini bir for döngüsünü kullanmaktan kişisel olarak tercih ediyorum. Daha verimli görünüyor. Her şeyden

0

Önce varsayılan yöntemi eklemek sağlayacak Faaliyetinizdeki OnGroupExpandListener uygulamak ve sonra böyle yapmanız gereken bu varsayılan yöntemi ekleyin: http

@Override 
    public void onGroupExpand(int groupPosition) { 
     // TODO Auto-generated method stub 
     int len = expadapter.getGroupCount();   
     for(int i=0;i<len;i++) 
     { 
      if(i!=groupPosition) 
      { 
       expandlst.collapseGroup(i); 
      } 
     } 
    }