2017-01-07 3 views
1

Ich habe eine Schublade mit multi erweiterbaren Artikel ineinander, für ein Beispiel "main1" (erweiterbares Element) drin "main2-1", "main2-2", " main2-3" (erweiterbar Artikel) in sie "main3-1", "main3-2", "main3-3" (Normalposition)Erweitern Sie einen Artikel nur im erweiterbaren Artikel, ohne zu kollabieren

ich möchte nur ein ExpandedItem auf der Ebene der lassen "main2" (main2-1, 2-1, 2-3) auch auf der Ebene der „main1“

ich habe result.getAdapter().withOnlyOneExpandedItem(true); versucht, wo „Ergebnis“ ist die Schublade Bibliothek ich verwende - Es ist nicht cuz kollabiert „main2 funktioniert "level" anstatt den ersten Gegenstand der Ebene zu erweitern

Auch this Methode funktioniert nicht in der 3. Klicken verschiedenen erweiterbaren Elemente - I th Code up mit Logging folgte die App geht es sicher sein, aber es nicht kollabiert nicht die vorherige

if(previousExpandableItemPosition != position) { 
    result.getAdapter().collapse(previousExpandableItemPosition); 
    previousExpandableItemPosition = position; 
} 

Antwort

0

ich habe ein Verfahren hergestellt, das ich in der onClick der expandierenden Elemente i nur einer von ihnen erweitert haben wollen gelegt und hier ist es jemand anderes

if (position != previousPosition && previousPosition != 0 && previousIdentifier != drawerItem.getIdentifier()) { // WithOnlyOneExpandableItem 
           IDrawerItem itemx = result.getAdapter().getItem(previousPosition); 
           if (itemx.isExpanded()) { 
            itemx.withIsExpanded(true); 
            result.updateItem(itemx); 
           } else { 
            if(previousPosition > position){ // user is going upward 
             itemx = result.getAdapter().getItem(previousPosition + result.getAdapter().getItem(position).getSubItems().size()); 
             if (itemx.isExpanded()) { 
              itemx.withIsExpanded(true); 
              result.updateItem(itemx); 
             }else{Log.i("ppppppppppppp", String.valueOf(previousPosition + (previousPosition - position)));} 

            }else if(previousPosition > position){ // user is going downward 
             itemx = result.getAdapter().getItem(previousPosition + (previousPosition 
               + result.getAdapter().getItem(previousPosition).getSubItems().size())); 
             if (itemx.isExpanded()) { 
              itemx.withIsExpanded(true); 
              result.updateItem(itemx); 
             }else{Log.i("ppppppppppppp", String.valueOf(previousPosition + (previousPosition - position)));} 
            } 
           } 
          } else if (previousPosition != 0 && previousIdentifier == drawerItem.getIdentifier()) { 
           //if the drawer item is collapsed after expanding then deselect it 
           EnterTimes++; 
           if(!result.getAdapter().getItem(position).isExpanded()){ 
            EnterTimes=1; 
           } 
           if(EnterTimes <2){ 
            result.getAdapter().getItem(position).withSetSelected(false); 
            result.updateItem(drawerItem); 
           } 
          } 
          previousIdentifier = (int) drawerItem.getIdentifier(); 
           previousPosition = position; 

und vor onCreate int previousPosition = 0, previousIdentifier = 0;

helfen
Verwandte Themen