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!

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top