Android Estirar columnas de manera uniforme en un TableLayout

3 minutos de lectura

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

Estuve jugando con stretchColumns pero no pude encontrar la combinación correcta, ¿alguna idea?

  • ¿Qué estaba mal con stretchColumns? ¿Estaban algunas de las columnas “desbordadas”?

    –Jeremy Logan

    3 de noviembre de 2009 a las 20:45

  • Los quiero que todos sean del mismo tamaño pero parece que adquieren diferentes tamaños entre ellos.

    – Drahcir

    3 de noviembre de 2009 a las 22:25

  • Lo sé… lo que estoy tratando de averiguar es si una de las vistas es más grande que el área que desea asignar para su columna.

    –Jeremy Logan

    4 de noviembre de 2009 a las 1:13

  • Lo mismo aquí, estoy tratando de descubrir cómo limitar el ancho de cada columna y configurarlo para que sea uniforme con el resto y hacer que el contenido de cada columna se extienda al máximo de su ancho asignado pero no más ancho.

    – Artem Russakovskii

    23 de junio de 2011 a las 0:31

avatar de usuario
Simón

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

android:stretchColumns="0,1,2"

O escribe:

android:stretchColumns="*"

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

  • Estoy tratando de mostrar el valor de 7 col en Android pero dinámicamente desde la clase … pero cuando lo instalo en Android ph. y mantener el ph redondo. no puede estirar la columna tan bien como la estática xml.

    – Sitio

    30 de marzo de 2011 a las 7:20

  • y ¿cómo haríamos esto durante el tiempo de ejecución?

    – Ewoks

    21 de febrero de 2013 a las 14:22

  • ACTUALIZACIÓN: pTable.setColumnStretchable(1, verdadero); pTable.setColumnShrinkable(0, verdadero);

    – Ewoks

    21 de febrero de 2013 a las 14:33

  • Esto parece ser cierto hasta que las columnas cambian frecuentemente de tamaño.

    – mr5

    2 de septiembre de 2015 a las 6:33

Necesita configurar AMBOS 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 del ESPACIO VACÍO en la fila utilizada por las vistas respectivas, y dado que el ancho de todas las vistas se establece en 0diptoda la fila es un espacio vacío y, por lo tanto, con pesos iguales, a todas las vistas se les asigna la misma proporción del ancho ENTERO.

avatar de usuario
Meriam

Utilizar el android:layout_weight para las columnas

Usted controla el tamaño de las columnas por el tamaño de su contenido. Si desea que todos tengan el mismo tamaño, configúrelo a través de android:layout_width en las celdas correspondientes.

Cualquiera que todavía esté buscando una solución, para mí: establecer columnas tanto retráctiles como extensibles hizo el truco. Tuve más o menos el mismo problema que OP.

  • Para mí, es combinar tu respuesta + la respuesta de linitbuff juntas.

    – tom_mai78101

    7 de noviembre de 2018 a las 16:49

  • Para mí, es combinar tu respuesta + la respuesta de linitbuff juntas.

    – tom_mai78101

    7 de noviembre de 2018 a las 16:49

¿Ha sido útil esta solución?