¿Cómo puedo configurar la altura de la celda GridView en función de la altura de la pantalla?

En mi diseño tengo sólo ocho celdas.
Quiero que la celda divida todo el espacio disponible en la pantalla. es posible?

Este es mi diseño gridview:

<GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/dataGrid" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="10px" android:verticalSpacing="10px" android:horizontalSpacing="10px" android:numColumns="2" android:gravity="fill" /> 

Y este es el diseño del elemento:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="6dip" > <TableRow android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="fill_parent" android:layout_height="fill_parent" android:textColor="#E00000" android:textStyle="bold" android:gravity="left" android:textSize="16dip"/> <TextView android:layout_width="fill_parent" android:layout_height="fill_parent" android:textColor="#000000" android:textStyle="normal" android:gravity="right" android:textSize="12dip"/> </LinearLayout> </TableRow> </LinearLayout> 

Desafortunadamente, GridView es un diseño complicado de manipular para obtener vistas internas para adaptarse a un tamaño específico como usted está intentando. Creo que es más apropiado pensar en GridView como un ListView avanzado para mostrar listas de desplazamiento variable, como las miniaturas en un álbum de fotos, en oposición a una "cuadrícula". Comencé por esta ruta cuando originalmente quería hacer una cuadrícula de tamaño fijo para un juego, pero realmente no es un diseño adecuado para que en absoluto.

Dado que su cuadrícula es siempre de 8 celdas, podría sugerir el uso de LinearLayout s anidado (o si no desea que todas las celdas TableLayout exactamente el mismo tamaño, el más complejo TableLayout / TableRow combo) en su lugar:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:weightSum="1.0" > <LinearLayout android:layout_width="0dp" android:layout_height="0dp" android:layout_weight="0.5" android:orientation="horizontal" android:weightSum="1.0" > <!-- Drop in 4 items here with layout_weight of 0.25 --> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="0dp" android:layout_weight="0.5" android:orientation="horizontal" android:weightSum="1.0" > <!-- Drop in 4 items here with layout weight of 0.25 --> </LinearLayout > </LinearLayout > 

Esto haría una cuadrícula fija 2×4 que siempre llena exactamente la pantalla.

En primer lugar, utilice PS en lugar de PX. Esto permitirá que pueda escalar a diferentes dispositivos DPI.

En segundo lugar, para conseguir que cada celda sea de tamaño uniforme, podría colocar un tableView en cada celda que contenga una imagen clara. Establecer el tamaño de la imagen con PS (no px). La vista de tabla debe permitir que la capa de los ojetos de diseño en cada celda y el gráfico claro debe mantener todas las celdas del mismo tamaño.

También quitaría cualquier relleno.

Haznos saber.

Usted debe intentar [android: stretchMode] [1]

[1]: http://developer.android.com/reference/android/widget/GridView.html#attr_android:stretchMode : Define cómo se deben estirar las columnas para llenar el espacio vacío disponible, si lo hay.

  • ImageView: relleno horizontal manteniendo relación de aspecto
  • View obtiene su estado dibujable (presionado, etc ...) de su padre
  • Error al generar el archivo final: java.io.FileNotFoundException: xxx \ bin \ resources.ap_ no existe
  • Android: ¿Cómo obtener una vista dada una actividad dentro de una clase normal?
  • Notificación Big Text Android GCM
  • Cómo aumentar la altura de remoteview en la notificación android
  • Cómo agregar dos listview en scrollview
  • Custom ListView y el menú contextual. ¿Cómo conseguirlo?
  • Problemas de la suma de peso de TableLayout
  • Error de diseño de Android: "Id de recurso <res_id> no es del tipo STYLE (en lugar de attr)"
  • GridView y el exceso de espacio de relleno
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.