Wie kann ich den groupIndicator einer ExpandableListView vollständig ausblenden?


69

Ich möchte den groupIndicator in einer benutzerdefinierten ExpandableListView vollständig ausblenden.

Das hier bereitgestellte Beispiel schien nicht zu funktionieren.

Es wird vorgeschlagen, einen Selektor zu erstellen und expList.setGroupIndicator (Selektor) zu verwenden, den ich repliziert habe:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/empty_icon">
    <item android:state_empty="true" android:drawable="@android:color/transparent"/>
    <item android:state_expanded="true" android:drawable="@android:color/transparent" />
    <item android:drawable="@android:color/transparent" />
</selector>

Dies ergibt den folgenden Fehler
ERROR/AndroidRuntime(10675): Caused by: android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue{t=0x12/d=0x0 a=2 r=0x7f0b0013}

Das gleiche ergibt sich aus dem ähnlichen Vorschlag, Android zu verwenden: id / leer anstelle von Farbe / transparent.

Wie kann ich die Gruppenanzeige vollständig ausblenden?

Bearbeiten: Wie sich herausstellt, funktioniert dieser Code ... wenn Sie ihn anstelle des Layouts in den Ordner für zeichnbare Ressourcen legen.

Antworten:


248

Haben Sie versucht ExpandableListView, das Attribut zu ändern android:groupIndicator="@null"?


19
Auch für alle, die dies programmgesteuert tun möchten, ist dies möglich mExpandableListView.setGroupIndicator(null).
Phil

0

Ich hatte das gleiche Problem und dies löste mein Problem. Fügen Sie im Adapter Ihrer Listview Folgendes zur getGroupView hinzu.

if (groupPosition == 0) {
     convertView = layoutInflater.inflate(R.layout.blank_layout, null);

} else {
    convertView = layoutInflater.inflate(R.layout.group_indicator_cell,null);
}

Dadurch wird die 0. Gruppe der Liste gelöscht.

Bei leerem Layout handelt es sich um ein Layout mit einer Ansicht von innen mit layout_height = 0dp. Es klappt!


0

Sie können diesen Code ausprobieren

listView = (ExpandableListView) view.findViewById (R.id.listView);

listView.setGroupIndicator(null);


listView.setChildIndicator(null);
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.