GridView no está ocupando todo el espacio dentro de ExpandableListView en Android.
Tengo que crear un ExpandableListView como se muestra en la imagen a continuación
He añadido un GridView dentro de un ExpandableListView, pero solo muestra la primera línea del GridView, como puedes ver en la siguiente imagen:
image
El GridView solo muestra 4 elementos aunque tiene un total de 9 elementos, pero el usuario los puede ver si desplaza la pantalla.
Aquí está el layout del list_item en el que he definido el GridView:
<?xml version="1.0" encoding="utf-8"?>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="match_parent" android:orientation="vertical">
<gridview android:id="@+id/gvCategories" android:layout_width="match_parent" android:layout_height="match_parent" android:numcolumns="4" android:layout_marginstart="@dimen/margin_xxlarge" android:layout_marginend="@dimen/margin_xxlarge" android:fillviewport="true"></gridview>
</linearlayout>
¿Cómo puedo implementarlo para que el GridView no se desplace y siempre muestre todas las entradas que contiene?
davy.ai
Para hacer que el GridView muestre todas las entradas en su interior sin necesidad de desplazarse, es necesario establecer la altura del GridView de forma dinámica en función del número de elementos que contiene.
En el diseño de list_item, cambie LinearLayout por RelativeLayout y agregue los siguientes atributos al GridView:
android:layout_alignParentTop="true"
: Esto alineará el borde superior del GridView con el borde superior del diseño principal.android:layout_alignParentBottom="true"
: Esto alineará el borde inferior del GridView con el borde inferior del diseño principal.android:stretchMode="columnWidth"
: Esto estirará las columnas para ajustarse al ancho disponible del GridView.Luego, en el adaptador de ExpandableListView, anule el método getChildView() y establezca la altura del diseño del GridView según el número de elementos que contiene de la siguiente manera:
Nota: Reemplace “YourGridAdapter” y “yourDataList” con sus propias clases de adaptador y lista de datos. Además, asegúrese de definir la dimensión “grid_item_height” en su archivo dimens.xml.