2010-08-11 7 views
15

Das Standardverhalten von ExpandableListView besteht darin, eine Gruppe zu minimieren, wenn auf die Überschrift geklickt wird. Ist es möglich, dies zu verhindern?Deaktivieren des Minimierens von ExpandableListView

Ich habe versucht:

  • Einstellung OnTouchListener auf der Liste. Dies beeinträchtigt das Scrollen.
  • Einstellung eines OnGroupClickListener auf der Liste (in onCreate()). Dies funktioniert für alle Klicks nach der erste.

Hat jemand anderes dies erreicht? Warum könnte der OnGroupClickListener den ersten Klick verpassen?

Vielen Dank im Voraus für Ihre Vorschläge.

+0

Dies funktionierte für mich -> http: // Stackov erflow.com/questions/3464599. – adstro

+0

Während hilfreich, beantwortet dieser Thread meine Frage nicht beantwortet. – Justin

Antwort

2

Es scheint, dass das Problem damit zu tun hatte, dass es sowohl ein fokussierbares Element im Gruppenkopf als auch einen OnGroupClickListener Satz gibt. Durch das Entfernen des Hörers wurde mein Problem gelöst.

+3

löste es nicht für mich (ich hatte noch nicht einmal einen gesetzt). Ich habe anklickbare Elemente * innerhalb * der Kopfzeile, aber die Kopfzeile selbst sollte nicht anklickbar sein. – Matthias

+0

OnGroupClickListener (null); –

14

Vielleicht zu spät It`s, verwende ich in der Tätigkeit onGroupCollapseListener und onGroupCollapse Methode implementieren (Expand ist ExpandableListView)

@Override 
public void onGroupCollapse(int collapseIndex) { 
    expandView.expandGroup(collapseIndex); 
} 
+0

Das hat perfekt funktioniert, danke. – Davor

+0

Ich denke, das sollte nicht umgesetzt werden! Andrus Weg ist besser! – Phuong

28

Sie auf Gruppenelemente wie diese klicken ignorieren können.

mMyExpandableListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() { 
    @Override 
    public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) { 
     // Doing nothing 
    return true; 
    } 
}); 
2

Sie können diesen Code für das Element verwenden, für das Sie deaktivieren möchten: {convertView.setClickable(false);}

+0

perfekten Code, wenn Sie deaktivieren möchten klicken Sie auf die jeweilige Bedingung –