Androide ¿Cómo estirar las filas en el gridview para llenar la pantalla?

Tengo GridView simple (con una columna y seis filas), que exhibe ImageView con TextView en la célula (yo crea el adaptador). Cómo estirar las filas para llenar toda la altura de la pantalla ?? Ahora tengo algo de espacio debajo de las celdas …

Main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal"> <LinearLayout android:layout_height="fill_parent" android:layout_width="150dp" android:orientation="vertical" android:id="@+id/left"> <include layout="@layout/menu_grid"></include> </LinearLayout> <LinearLayout android:layout_height="fill_parent" android:layout_width="fill_parent" android:orientation="vertical" android:id="@+id/right"> <ImageView android:src="@drawable/image" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/imageMain" android:layout_gravity="center"> </ImageView> </LinearLayout> 

Menu_grid.xml

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <GridView android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/gridView" android:padding="10dp" android:verticalSpacing="10dp" android:horizontalSpacing="10dp" android:numColumns="1" android:columnWidth="100dp" android:stretchMode="columnWidth" android:gravity="center"></GridView> 

Item.xml

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="fill_horizontal"> <ImageView android:src="@drawable/icon" android:layout_height="70dp" android:id="@+id/imageIcon" android:layout_width="70dp" android:layout_gravity="center_horizontal"></ImageView> <TextView android:id="@+id/textIcon" android:text="TextView" android:layout_gravity="center" android:layout_height="wrap_content" android:layout_width="wrap_content"></TextView> 

ImageAdapter.java

 public class ImageAdapter extends BaseAdapter { //....some code //.... @Override public View getView(int position, View convertView, ViewGroup parent) { View view; if (convertView == null) { LayoutInflater inflater = (LayoutInflater)_context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = inflater.inflate(R.layout.item, null); TextView text = (TextView) view.findViewById(R.id.textIcon); text.setText(labels[position]); ImageView image = (ImageView) view.findViewById(R.id.imageIcon); image.setImageResource(icons[position]); } else { view = convertView; } return view; } 

}

En cuanto a lo que entendí, la pregunta es: si tengo 6 filas de datos para ser llenado en el gridView, ¿cómo puedo hacer que estas 6 filas llenen toda la pantalla, en lugar de mostrar 6 filas y un espacio vacío debajo de la última fila.

Para lograr esto, debe establecer la altura mínima del diseño del elemento gridView (en su caso, su item.xml) a (altura de la pantalla) / 6, donde 6 es el (número de filas que debe rellenar). Esta altura mínima se puede establecer en el adaptador que está utilizando.

Para encontrar la altura de la pantalla del dispositivo:

 DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); int width = metrics.widthPixels; int height = metrics.heightPixels; 

Encontrar estos valores en la actividad y hacerlos públicos estáticos y utilizarlos en el adaptador, tuve un problema en la búsqueda de estos valores en la clase del adaptador

Luego para establecer la altura mínima:

 view = inflater.inflate(R.layout.item, null); view.setMinimumHeight(GridViewActivity.height/6); 

Lo intenté después de ver el post, y funcionó perfectamente.

Si sólo desea aumentar el espacio entre las líneas que puede utilizar el relleno debe funcionar. Usted puede fijar el relleno a través de xml o programmatically basado en su requisito.

 // this you can set inside your view. android:paddingLeft="5px" android:paddingRight="5px" android:paddingTop="10px" android:paddingBottom="10px" // this you can set to your any widgets like TextView/Layouts/Buttons etc.. setPadding(top, left, bottom, right); 

Espero que te entienda correctamente, si es tan fácil como cambiar tu GridView a fill_parent instead de wrap_content .

Cambio

 <GridView android:layout_height="wrap_content" 

a

 <GridView android:layout_height="fill_parent" 

Si éste no es el caso entonces es probablemente la altura de la disposición en el LinearLayout del item.xml que usted desea modificar.

  • ¿Es posible configurar el fondo de pantalla tal como se hace con la aplicación que viene con Android?
  • Detectar una tableta de 7 pulgadas y 10 pulgadas mediante programación
  • ¿Cómo puedo configurar el ancho de los botones de radio para cambiar con respecto al tamaño de la pantalla? (androide)
  • Cómo crear una pantalla deslizante (como en Tweetdeck) en Android?
  • Cómo saber si el usuario está en la pantalla de bloqueo desde el servicio
  • ¿Cuándo se desactiva exactamente el servicio NFC?
  • Cómo obtener el tamaño total de la pantalla en un dispositivo android programaticamente
  • Cómo comprobar si mi aplicación es el iniciador predeterminado
  • ¿Cómo puedo crear una aplicación personalizada de reemplazo de pantalla de inicio para Android?
  • Compartición de pantalla Android
  • ¿Qué tamaños de pantalla son necesarios para dispositivos móviles android y ios?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.