SetGravity para GridLayout no funciona

Estoy usando un GridLayout simple al cual estoy agregando botones dinámicamente.

 <GridLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/tagGridLayout" android:background="@color/white" android:layout_width="fill_parent" android:layout_height="wrap_content" android:columnCount="3" > </GridLayout> 

Y estoy utilizando este código Java para llenar mi cuadrícula que está funcionando bien, excepto que la opción Gravity set no hace nada. He intentado – cambiar layout_width a diferentes tipos en el archivo XML, añadir gravedad a GridLayout etc, como se menciona en otras soluciones en este sitio. Otra cosa a tener en cuenta es que estoy haciendo esto en una tarea Async dentro de un Fragmento. Básicamente quiero lograr lo que layout_gravity="fill_horizontal" logra en el XML.

 tagButtons = new Button[trendingTagsCount]; for(int i=0;i<trendingTagsCount;i++) { tagButtons[i] = new Button(getActivity()); //tagButtons[i].setLayoutParams(new LayoutParams(Gravity.FILL_HORIZONTAL)); tagButtons[i].setText(getTagsList.get(i).tag); tagButtons[i].setGravity(Gravity.FILL_HORIZONTAL); tagButtonGrid.addView(tagButtons[i]); } 

Como Karan Mer dijo que estableció la gravedad de diseño con GridLayout.LayoutParams.

Pero tenga cuidado, en Gridlayout usted tiene que fijar el columnSpec / rowSpec de los niños (en su caso el botón) antes de:

 param.columnSpec = GridLayout.spec(0); param.rowSpec = GridLayout.spec(0); 

Y sólo entonces

 param.setGravity(Gravity.RIGHT); 

Si columnSpec / rowSpec es UNDEFINED cuando haces setGravity, la gravedad no funciona …

Incluso si lo hace:

 param.setGravity(Gravity.RIGHT); param.columnSpec = GridLayout.spec(0); param.rowSpec = GridLayout.spec(0); 

La gravedad no funciona …

El camino correcto es:

 param.columnSpec = GridLayout.spec(0); param.rowSpec = GridLayout.spec(0); param.setGravity(Gravity.RIGHT); 

No sé si es un error o una cosa deliberada. (Estoy usando la API de Android 19)

  • GridView, GridLayout o TableLayout?
  • ¿Cómo hacer Android GridLayout compatible con la versión anterior?
  • IntelliJ y android.support.v7.widget.GridLayout
  • Cómo los elementos de GridLayout provienen del adaptador (lista / imagen) en la aplicación para Android
  • Cuadrícula con bordes
  • Ocultar fila en GridLayout
  • Altura dinámica de TextView dentro de un GridLayout
  • Horizontalmente las vistas de centro dentro de Android GridLayout
  • La alineación no es correcta al agregar vista dinámicamente a GridLayout
  • Diseño de cuadrícula vs. Diseño de la tabla
  • Espacio entre los elementos de GridLayout
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.