GridLayout y Row / Column Span Woe

La publicación de Android Developers Blog que presenta GridLayout muestra este diagtwig de cómo los GridLayout afectan la asignación automática de índices:

asignación automática de índices

Estoy intentando implementar eso usando un GridLayout . Esto es lo que tengo hasta ahora:

  

Tuve que introducir los elementos para asegurar que cada columna tuviera un ancho mínimo, de lo contrario, tendría un montón de columnas de ancho cero.

Sin embargo, incluso con ellos, entiendo esto:

muestra GridLayout

Notablemente:

  • A pesar de android:layout_gravity="fill_horizontal" , mis widgets con android:layout_gravity="fill_horizontal" columnas no llenan las columnas extendidas

  • A pesar de los valores de android:layout_rowSpan , nada abarca filas

¿Alguien puede reproducir el diagtwig de la publicación del blog usando un GridLayout ?

¡Gracias!

Se siente bastante raro, pero me las arreglé para obtener el aspecto correcto al agregar una columna y una fila extra más allá de lo que se necesita. Luego llené la columna extra con un espacio en cada fila que define una altura y llené la fila adicional con un espacio en cada columna que define un ancho. Para una mayor flexibilidad, imagino que estos tamaños de espacio se pueden configurar en código para proporcionar algo similar a los pesos. Traté de agregar una captura de pantalla, pero no tengo la reputación necesaria.

                        

captura de pantalla

           

Captura de pantalla

Debe establecer tanto layout_gravity como layout_columntWeight en sus columnas

      

La biblioteca GridLayout de soporte de Android V7 hace que la distribución de espacio excedente sea más fácil al acomodar el principio de peso. Para hacer que una columna se estire, asegúrese de que los componentes dentro de ella definen un peso o una gravedad. Para evitar que una columna se estire, asegúrese de que uno de los componentes de la columna no defina un peso o una gravedad. Recuerde agregar dependencia para esta biblioteca. Agregue com.android.support:gridlayout-v7:25.0.1 en build.gradle.

 < ?xml version="1.0" encoding="utf-8"?>       

A partir de API 21, GridLayout ahora admite el peso como LinearLayout. Para más detalles, consulte el siguiente enlace:

https://stackoverflow.com/a/31089200/1296944