Nascondi divisore senza nascondere childDivider su ExpandableListView
-
28-10-2019 - |
Domanda
Non riesco a trovare un modo per nascondere i divisori su un ExpandableListView senza nascondere anche i divisori secondari.
Ecco il mio codice.
<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" />
Con questo codice, non ottengo divisori sui gruppi, ma nemmeno divisori figlio.Se imposto android:divider
su "@drawable/list_divider"
ottengo sia i divisori di gruppo che quelli di figlio.
Grazie in anticipo!
Soluzione
L'unica soluzione che ho trovato è stata inserire il divisore figlio direttamente nell'XML figlio, in questo modo:
<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" />
che è molto molto brutto ma funziona.
Tuttavia, dovrebbe esserci un modo per farlo correttamente.
Altri suggerimenti
expListView.setDivider(null);
expListView.setDividerHeight(2);
this will work
Adding dividerHeight parameter to your ExpandableListView in your xml layout should do the trick
How about just add a line:
android:dividerHeight="0dp"
Actually, i face the similar problem. PD asks the divider and the childDivider are both existed and different, which bothers me much. I am looking for answers too.
In my opinion : -Remove divider in XML :
android:divider="@null"
android:dividerHeight="0dp"
-Draw 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);
-After you can set divider following group position.