Centrar a los niños en un GridView

Tengo un GridView 3 columnas y 4 elementos.

Así que sucede que tres de ellos aparecen en la primera fila, y el último en la segunda fila, pero este alineado a la izquierda. Sólo quería saber si es posible hacer que aparezca centrado en el GridView . Como un 'T', no sé si lo explico … xD

Gracias 🙂

Editar:

Este es el diseño que contiene el GridView

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/section_title_root" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/bg_gd_home_grid"> <ImageView android:src="@drawable/home_grid_txori" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="40dip" android:layout_centerHorizontal="true"/> <GridView android:id="@+id/home_grid" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:numColumns="3" android:drawSelectorOnTop="true" android:layout_marginBottom="30dip" android:layout_marginLeft="30dip" android:layout_marginRight="30dip" android:padding="5dip" android:listSelector="@android:color/transparent" android:background="@drawable/bg_home_grid_item" /> </RelativeLayout> 

Por cierto, android:layout_centerHorizontal="true" no funciona en GridView

Edición de la solución:

Este problema es de años pasados, pero me han pedido que publique la solución y tuve que encontrar mi viejo repo para conseguirlo 🙂

Como dije abajo en los comentarios, no pude lograrlo sólo usin XML, así que tuve que engañar un falso no-clicable + elemento no enfocable en la 3ª posición.

Era mi primera aplicación, así que no implementé la solución "ViewHolder" recomendada. Recomiendo encarecidamente su uso

Así es como se ve mi método getView () en el Adaptador:

 public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = (RelativeLayout) mInflater.inflate( R.layout.home_grid_item, null); } /* In order to have 4th item centered in the 2nd row, we create an empty 3rd item */ if (position == 3) { convertView.setFocusable(false); convertView.setClickable(false); } else { ImageView imageView = (ImageView) convertView .findViewById(R.id.image); imageView.setImageResource(mThumbs[position]); TextView textView = (TextView) convertView.findViewById(R.id.title); textView.setText(mTitles[position]); } convertView.setTag(mTabTags[position]); return convertView; } 

Puede probar el siguiente código:

 android:gravity="center_horizontal" 

En el xml.

Pruebe el siguiente código, si todavía desea hacerlo a través de XML , aunque ya haya resuelto su problema.

 android:layout_gravity="center_horizontal" 

En lugar de usar android:gravity , android:layout_gravity se utiliza aquí.

Así es como resolví este problema. Me dinámicamente establecer numcolumn cuando sé la columna exactamente.

  <GridView android:id="@+id/gr_single" android:verticalSpacing="@dimen/pay_mode_icon_margin" android:horizontalSpacing="@dimen/pay_mode_icon_margin" android:columnWidth="@dimen/pay_icon_width" android:gravity="center" android:stretchMode="columnWidth" android:layout_width="match_parent" android:layout_height="wrap_content"/> 

En el java.

 mGridView.setNumColumns(mSingleImageViews.size()); mGridView.setAdapter(new ImageAdapter()); 
  • Desactivación de onClick para elementos seleccionados en GridView Android
  • Android - ¿cómo puedo saber cuando gridview ha llegado al fondo?
  • Galería de imágenes de desplazamiento horizontal de Android
  • Mantenga la posición de desplazamiento de GridView a través de la rotación de pantalla
  • GridView con elemento de fila incompleto no se desplaza
  • Android Gridview y el botón OnItemclick
  • Cómo configurar un colspan en una celda de gridview de Android
  • Bloqueo de scroll de gridview
  • GridView VS GridLayout en Aplicaciones de Android
  • Actualización de la vista de cuadrícula dinámicamente cuando se elimina un elemento (archivo)
  • Cómo establecer un ancho de columna de un gridview en android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.