Masquer le diviseur sans cacher le diviseur pour expandableListView
-
28-10-2019 - |
Question
Je ne trouve pas de moyen de cacher des séparateurs sur une action de vue extensible sans cacher également les diviseurs d'enfants.
Voici mon code.
<ExpandableListView
android:id="@+id/activities_list"
android:background="@android:color/transparent"
android:fadingEdge="none"
android:groupIndicator="@android:color/transparent"
android:divider="@android:color/transparent"
android:childDivider="@drawable/list_divider"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
Avec ce code, je ne reçois aucun diviseur sur les groupes mais pas de diviseurs d'enfants non plus. Si je mets android:divider
à "@drawable/list_divider"
Je reçois à la fois des diviseurs de groupe et d'enfants.
Merci d'avance!
La solution
La seule solution que j'ai trouvée est de mettre le diviseur d'enfant directement dans le XML des enfants, de cette façon:
<TextView
android:id="@+id/name"
android:layout_centerVertical="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ImageView android:id="@+id/divider"
android:layout_alignParentBottom="true"
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="@drawable/list_divider" />
Ce qui est très très moche mais fonctionne.
Mais encore, il devrait y avoir un moyen de le faire correctement.
Autres conseils
expListView.setDivider(null);
expListView.setDividerHeight(2);
Cela fonctionnera
L'ajout de paramètre DividerideHeight à votre expandableListView dans votre disposition XML devrait faire l'affaire
Que diriez-vous d'ajouter une ligne:
Android: DividerHeight = "0dp"
En fait, je fais face au problème similaire. PD demande au diviseur et au diviseur d'enfants existait à la fois et différent, ce qui me dérange beaucoup. Je cherche aussi des réponses.
À mon avis: -Réliger le diviseur dans XML:
android:divider="@null"
android:dividerHeight="0dp"
-D-DIVIDER IN View GetGroupView (.., .., .., ..):
View divider = new View(_context);
View dividerIDU = new View(_context);
RelativeLayout.LayoutParams rldivider = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.MATCH_PARENT, 1);
RelativeLayout.LayoutParams rldividerShort = new RelativeLayout.LayoutParams(
150, 3);
rldividerShort.setMargins(5, -1, 0, 0);
dividerIDU.setBackgroundColor(Color.RED);
divider.setLayoutParams(rldivider);
dividerIDU.setLayoutParams(rldividerShort);
divider.setBackgroundColor(Color.rgb(200, 200, 200));
((RelativeLayout) convertView).addView(divider);
((RelativeLayout) convertView).addView(dividerIDU);
-Après vous pouvez définir le diviseur suivant la position de groupe.