2017-03-16 5 views
2

Ich verwende ExpandableListView mit "groups" und "childs" -Elementen. Ist es möglich, die Erweiterung einiger Gruppenelemets zu deaktivieren? Muss ich etwas Code in Adapter ändern oder sollte ich overrideonclick Methode?Wie können Sie Elemente in der erweiterbaren Listenansicht deaktivieren?

+0

können Sie einfach '.setClickbale()' auf anzeigen –

+0

@ndeokar Vielen Dank für Ihre Antwort. Aber ich möchte nicht alle Gruppen-Elemente deaktivieren, aber ich möchte einige davon deaktivieren – MrStuff88

+0

logisch, wenn Sie Klicks von Gruppenelementen deaktivieren, was bedeutet, dass Sie keine untergeordneten Elemente anzeigen möchten? korrigiere mich, wenn ich falsch liege. Sie können onclick überschreiben und dann einschränken, wie Sie erwähnt haben. –

Antwort

1

Verwenden setOnGroupClickListener auf Listenansicht und Rück true auf der Position, die Sie aufgewandt deaktivieren wollen

werden

dies deaktivieren das erste Element zu sein verausgabte

expListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() { 
     @Override 
     public boolean onGroupClick(ExpandableListView expandableListView, View view, int i, long l) { 
      if (i==0){ 
       return true; 
      } 
      return false; 
     } 
    }); 
+0

Ich habe versucht, das war, aber es funktioniert nicht .. – MrStuff88

+0

Entschuldigung, mein Fehler. Es funktioniert gut – MrStuff88

1

Rufen Sie .setClickable (false) für die Gruppenköpfe auf, die nicht beim Klicken ausgelöst werden sollen. Ihr Adapter erhält einen Anruf an getGroupView. Diese Methode gibt die Ansicht zurück, die als Gruppenkopf angezeigt wird. Wenn Sie diese Ansicht klickbare nicht wollen, rufen Sie .setClickable(false)

@Override 
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { 

    if (convertView == null) { 
     LayoutInflater li = LayoutInflater.from(activity); 
     convertView = li.inflate(<<your header item>>, null); 
    } 

    if (isLastGroup) 
     convertView.setClickable(false); 

    return convertView; 
} 
+0

Das funktioniert nicht, ich vergleiche groupPosition mit meiner Nummer 5 (ich habe 6 Gruppen) und wenn result' true' setze ich clickable (false). – MrStuff88

+0

Dieser Weg funktioniert auch gut – MrStuff88

Verwandte Themen