2009-11-03 16 views
65

Estoy mostrando una tabla de valores en mi aplicación para Android, y me gustaría que las columnas se distribuyan de manera uniforme en términos de tamaño, en lugar de dimensionarlas según el contenido.Android Extienda las columnas de manera uniforme en una TableLayout

He estado jugando con stretchColumns pero no he podido encontrar la combinación correcta, ¿Alguna idea?

+0

¿Qué pasa con stretchColumns? ¿Algunas de las columnas estaban "desbordadas"? –

+0

Quiero que todos sean del mismo tamaño pero parecen adquirir diferentes tamaños entre ellos. – Drahcir

+1

Lo sé ... Lo que intento averiguar es si una de las vistas es más grande que el área que desea asignar para su columna. –

Respuesta

148

Tuve el mismo problema: siempre ingresé un número en android:stretchColumns, pero debe ingresar todas las columnas que deben estirarse. Así que si usted tiene tres columnas, usted tiene que escribir:

android:stretchColumns="0,1,2" 

O escribir:

android:stretchColumns="*" 

A continuación, todas las columnas tendrán el mismo tamaño. Como recordatorio, android:stretchColumns es un atributo para el elemento TableLayout.

+0

Estoy tratando de mostrar el valor de 7 col en Android, pero dinámicamente de la clase ... pero yo al instalar en el ph de Android. y mantener ronda ph. no puede estirar la columna, así como xml estático. – Siten

+1

y cómo lo haríamos durante el tiempo de ejecución? – Ewoks

+2

ACTUALIZACIÓN: pTable.setColumnStretchable (1, verdadero); \t pTable.setColumnShrinkable (0, verdadero); – Ewoks

1

Usted controla el tamaño de las columnas por el tamaño de sus contenidos. Si desea que todos tengan el mismo tamaño, configúrelo en android:layout_width en las celdas correspondientes.

+3

si los contenidos son dinámicos y no sé que el ancho de diseño de tamaño no funcionará. ¿Hay alguna otra manera? – AD14

4

Uso del android:layout_weight para las columnas

16

Usted necesita configurar tanto android:layout_width="0dip" y android:layout_weight="1" para cada vista dentro de una fila de la tabla. Creo que esto funciona porque los pesos determinan la proporción de ESPACIO VACÍO en la fila utilizada por las respectivas vistas, y dado que el ancho de todas las vistas está establecido en 0dip, toda la fila es espacio vacío y, por lo tanto, con pesos iguales, las vistas son todos asignaron la misma proporción del ancho ENTERO.

0

Quien todavía está buscando una solución, para mí: estableciendo columnas, tanto contraíbles como estirable, hizo el truco. Tuve prácticamente el mismo problema que OP.

Cuestiones relacionadas