Android expandablelistview cómo establecer el espacio entre los elementos de los grupos

Tengo expandiblelistview y quiero agregar relleno (o margen) entre los elementos de los grupos, he utilizado el margin-botton en los elementos del grupo, funciona, pero ahora también se aplica al elemento de grupo y sus childs, quiero mantener un espacio Entre los elementos de grupo, no entre un elemento de grupo y su hijo, trabajo de esta manera:

Xml principal

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="#FFFFFF"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:typeface="serif" android:textSize="25dip" android:textColor="#025f7c" android:text="@string/tv_allAddresses" android:layout_gravity="center" android:layout_marginTop="20dip" android:layout_marginBottom="25dip"/> <ExpandableListView android:id="@+id/elv_all_addresses_addresses" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dip"> </ExpandableListView> </LinearLayout> 

Grupo xml

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/tv_all_address_group_groupName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingLeft="30dip" android:textColor="#000000" android:textSize="20dip" android:typeface="serif" /> </LinearLayout> 

Niño xml

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > <TextView android:id="@+id/tv_all_address_child_label" android:paddingLeft="50dip" android:typeface="serif" android:textSize="15dip" android:textColor="@color/BlueViolet" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/tv_all_address_child_value" android:textColor="#000000" android:layout_marginLeft="10dip" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> 

4 Solutions collect form web for “Android expandablelistview cómo establecer el espacio entre los elementos de los grupos”

Porque está utilizando adapter que se extiende desde BaseExpandableListAdapter para que pueda establecer el relleno mediante programación estableciendo el relleno al elemento de grupo cuando el grupo no se está expandiendo y, a continuación, quitar el relleno cuando el grupo se está expandiendo y para cada grupo establecer relleno al último hijo en él.

Ajuste del relleno al último niño

 public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { if (childPosition == groups.get(groupPosition).getChilds().size() - 1) { convertView.setPadding(0, 0, 0, 20); } else convertView.setPadding(0, 0, 0, 0); return convertView; } 

Ajuste del relleno al elemento de grupo cuando se está expandiendo

 public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { if (isExpanded) convertView.setPadding(0, 0, 0, 0); else convertView.setPadding(0, 0, 0, 20); return convertView; } 

Nota

Supongo que estás usando arraylist para tus grupos y tus hijos, solo puedes reemplazar los groups.get(groupPosition).getChilds().size() - 1 por el tamaño de tu grupo dependiendo de tu estructura

En caso de que esté buscando una mejor opción, simplemente agregue

 expandablelsv.setDividerHeight(); 

Después de que el group y el child indicator que funciona completamente bien en mi caso, darle una oportunidad

Verifique si el niño es el último y agregue el relleno allí

 public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { if (isLastChild) { convertView.setPadding(0, 0, 0, 30); } return convertView; } 

Yo estaba teniendo el mismo tipo de problema por lo que se me ocurrió una solución infantil. Lo que hice fue agregado a un diseño lineal con las mismas propiedades tanto en el archivo de diseño padre como en el archivo de disposición secundaria de la vista de lista expandible. Y cuando se hace clic en un grupo hice el "diseño lineal" del archivo de diseño padre invisible y mi trabajo se hizo.

Archivo de disposición de grupo

 <TextView android:id="@+id/expandable_faqparent_id" android:layout_width="match_parent" android:layout_height="50dp" android:layout_margin="2dp" android:layout_marginBottom="30dp" android:background="#ffffff" android:gravity="center" android:text="hello this is dummy text" android:textSize="20dp" android:textStyle="bold" /> <LinearLayout android:id="@+id/linear_parent_faq" android:layout_width="match_parent" android:layout_height="10dp" android:background="#cfd8dc" android:layout_weight="0.06" android:orientation="vertical"> </LinearLayout> 

Archivo de disposición infantil

 <TextView android:layout_width="match_parent" android:layout_height="50dp" android:id="@+id/expandable_faq_child_id" android:text="DUMMY PARENT" android:background="#ffffff" android:gravity="center" android:elevation="2dp"/> <LinearLayout android:id="@+id/linearfaq" android:layout_width="match_parent" android:layout_height="10dp" android:background="#cfd8dc" android:orientation="vertical"> </LinearLayout> 

Para ocultar el diseño lineal cuando se hace clic en cualquier grupo Añada esta línea al método addChildView en la clase del adaptador

 lv.setVisibility(View.INVISIBLE); 

Aquí lv contiene el id del diseño lineal

Linear_parent_faq

Del archivo de disposición de grupo.

  • Gradiente radial en XML con el tamaño del padre
  • Android BitmapDrawable setTileModeX no funciona en TextView
  • SelectableItemBackground como elemento en la lista de capas
  • Actividad de diálogo: el texto se corta en android
  • Android: rotar recorta las esquinas de la forma
  • ¿Hay efectos secundarios del uso de múltiples archivos string.xml?
  • Android - ¿Cómo alinear editText y enviar el botón inferior?
  • Android windowSoftInputMode = "adjustPan" desplazarse un poco más
  • Disposición de Android con vista a la derecha que ocupa un espacio preestablecido y visualiza en las escalas de la izquierda para llenar el resto de la pantalla hasta cierto límite
  • En Android XML, ¿puedo establecer buttonStyleSmall o Button.Small como un estilo padre para un estilo personalizado?
  • Botón de forma redonda que se distorsiona con la longitud del texto dentro.
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.