2012-08-03 14 views
7

La aplicación Mi tableta muestra un ListView con múltiples TextViews en cada elemento de línea (usando un adaptador de cursor personalizado). Tengo alrededor de 6-7 columnas. ¿Cuál es la mejor manera de dar espacios iguales a todas las columnas?Vista de lista de Android con varias columnas alineadas correctamente

En este momento me trataron:

  • mismo peso en cada TextView. Pero esto nunca está alineado correctamente.
  • Se utiliza el ancho máximo junto con el 1er, sin suerte, uno puede desbordarse fácilmente y empujar el siguiente a la derecha.

    <TextView 
        android:layout_width="20dp" 
        android:layout_height="wrap_content" 
        android:layout_margin="5dp" 
        android:layout_weight="1" 
        android:text="column 1" 
        android:textSize="22sp" /> 
    

Respuesta

14

Los pesos están bien, pero debe establecer android:layout_width en 0dp cada vez que usa un peso de diseño, de lo contrario, es posible que sus vistas no se escalen correctamente.

Además, no mezcle los anchos fijos con los pesos de disposición. Si elige usar pesos, úselos en todas partes en el diseño de su fila.

0

un diseño de tabla con una fila. La idea de mesa es la misma distancia.

3

No es una buena práctica usar anchuras y alturas fijas en Android, deje que Android haga el diseño. Puede usar un LineLayout con pesos para alinear correctamente los artículos en filas diferentes. use "android: width = 0dp" y use el peso para acotar los diversos campos. Un enfoque alternativo sería usar TableLayout, pero eso es un poco complicado. Sin embargo, funciona.

0

En mi caso (para la vista del registro de errores) Especifiqué el ancho para 4 columnas (TextViews) de 5 y 1 (en el diddle con descripción del error) got weight = 1 para tomar todo el espacio disponible. Se ve bien y sin problemas de rendimiento.

0

Parece que es imposible obtener una tabla de aspecto ordenado como ListView, ya que con el control de peso, las diferentes columnas de contenido tienen un tamaño de columna diferente cada una. Alguien tiene una solución XML? El ancho fijo no funciona, ya que necesito admitir varias pantallas.

Cuestiones relacionadas