So entfernen Sie in einer ExpandableListView bestimmten Abstand zwischen Eltern und Kind

8

Können Sie mir helfen zu erkennen, warum zwischen der Gruppe und dem Kind ein Platz ist? In meinem Fall möchte ich Leerzeichen zwischen allen Gruppen und das Kind sollte direkt unter der Gruppe ohne Leerzeichen sein (aber natürlich Platz für die nächste Gruppe. Mein Problem sieht so aus:

Ich habe den Gruppenteiler auf dieses Zeichen gesetzt (expandable_list_group_divider):

%Vor%

Und der Child-Teiler dazu (@ drawable / expandable_list_child_divider):

%Vor%

Ich habe das Layout wie folgt in der XML definiert (es ist ein Compound-Steuerelement):

%Vor%

Die benutzerdefinierte Ansichtsklasse:

%Vor%

Und schließlich der erweiterbare Listenadapter

%Vor%

Bild für Kommentare:

    
Sulby 25.07.2014, 11:52
quelle

9 Antworten

4

Dies ist getestet und funktioniert nachweislich, ich wollte sogar Monate später noch einmal darauf zurückkommen, weil keine der anderen Methoden mir Ergebnisse brachte, wie ich sie haben wollte. Diese werden genau so angezeigt, wie OP (und ich)

wollten

Das sind meine Gruppen oder Kategorien oder was auch immer. Grundsätzlich ist das erste lineare Layout nur ein Wrapper für eine Ansicht, die als Abstandhalter zwischen den Kategorien fungiert, und dann ein weiteres lineares Layout, das alle meine Formatierungen verarbeitet.

in der ExpandableListView (nicht gezeigt) habe ich die Teilerhöhe auf 0 gesetzt. Der Abstand wird stattdessen von den Ansichten

gehandhabt %Vor%

Dann im Kind habe ich das.

%Vor%     
googleman2200 11.11.2014 03:23
quelle
3

Ich habe die folgenden Einstellungen in der XML-Datei verwendet und es gibt keine Lücke zwischen dem Eltern und dem Kind.

%Vor%

Wahrscheinlich ist dies ein Problem mit einer Randeinstellung, die Sie haben.

    
dev.mi 04.08.2014 07:25
quelle
2

Entfernen Sie alle Ränder und die Höhe des Teilers und fügen Sie stattdessen einen leeren Bereich oberhalb der Gruppenansicht hinzu. Es sollte den Trick machen.

    
Avinazz 08.08.2014 09:52
quelle
2

Angenommen, Sie möchten einen Abstand zwischen den Eltern, aber nicht zwischen Eltern & Amp; Kind. Ich habe es versäumt, einen angemessenen Weg zu finden, um es zu erreichen. Also habe ich keine intelligente Lösung vorgenommen, indem ich die Teilerhöhe nicht festgelegt habe, da ich für jedes übergeordnete Element ein benutzerdefiniertes Layout hatte, fügte ich daher ein LinearLayout mit einer festen Höhe von 25 dpi am oberen Rand meines benutzerdefinierten übergeordneten Layouts ein Ich konnte die Wunschfunktionalität erreichen, aber es gab einen Nebeneffekt, wenn Sie das Listenelement berühren, werden sowohl der Abstand als auch das Listenelement bei Berührung hervorgehoben.

    
Code_Yoga 08.08.2014 12:15
quelle
2

Verwenden Sie den negativen Rand für die untergeordnete Ansicht in view_departure_details.Etwas wie folgt:

%Vor%

Ich weiß, dass einige Leute es für eine schlechte Praxis halten, negative Ränder zu verwenden, aber richtig scheint es der einfachste Weg zu sein.

Andere Möglichkeit (der zeitaufwendige Weg) besteht darin, Ihre eigene erweiterbare Listenansicht zu implementieren, damit Sie besser steuern können, wie Dinge gezeichnet werden.

    
rupesh jain 08.08.2014 16:46
quelle
2

Um Teiler nur aus den untergeordneten Ansichten und nicht zwischen den Eltern in der erweiterbaren Liste zu entfernen:

Fügen Sie android: childDivider="# 00000000" in den ExapandableListView-Attributen in XML hinzu:

%Vor%

Siehe Ссылка

    
Vaishali Sutariya 08.08.2014 09:57
quelle
0

Legen Sie die untergeordnete Ansicht programmgesteuert wie folgt fest:

expandableListView.setDividerHeight (1);

expandableListView.setChildDivider (neues ColorDrawable (Color.Black);

Und Gruppenansicht Von XML wie:

%Vor%     
Sundeep Badhotiya 21.01.2016 10:23
quelle
0

Sie können Transparenz zwischen ihnen wie ..

setzen %Vor%     
Hardik Lakhani 19.04.2017 13:01
quelle
0

Ändern Sie das Padding der Ansicht in der Methode public View getChildView() mit dem setPadding () Methode der Ansicht.

Beispiel:

%Vor%

Wenn Sie das Padding der Gruppe ändern möchten, müssen Sie das Padding in der getGroupView() -Methode ändern.

    
VIX 07.07.2017 19:27
quelle