Cómo SpaceEvenly y cambiar el tamaño de dos elementos en una Fila?

0

Pregunta

Estoy tratando de spaceevenly un Icon() y un AutoSizeText() en un Row(). Cuando la cantidad es largo como se puede ver en las imágenes adjuntas se muestra como se esperaba, pero cuando la cantidad es cero o muy corto, el AutoSizeText() es estar centrados, pero esto provoca que a la misma distancia de los bordes ya no se mantiene. Hay una distancia adicional causada por el centro. No sé cómo solucionar este problema.

Edit. Si no estaba claro, me estoy refiriendo a la rosa de compras ícono de la bolsa y la cantidad que se mostró en el "Riepilogo Settimanale" sección. Si usted mira en el Restaurante Icono y su cantidad, se puede observar cómo estos no están centrados, están más cerca de la orilla izquierda.

orginal view

enter image description here

Container(
      decoration: BoxDecoration(
        color: Colors.white,
        borderRadius: BorderRadius.circular(20),
      ),
      width: size.width * 0.3,
      height: size.height,
      // height: size.height * 0.055,
      child: Row(
        children: [
          Spacer(),
          Expanded(
            flex: 3,
            child: Container(
              child: LayoutBuilder(
                builder: (context, constraint) {
                  return Icon(
                    icona,
                    color: colore,
                    size: constraint.biggest.width * 1,
                  );
                },
              ),
            ),
          ),
          Spacer(),
          Expanded(
            flex: 6,
            child: Center(
              child: AutoSizeText(
                importo,
                style: TextStyle(
                  fontSize: 20,
                  fontWeight: FontWeight.bold,
                  color: colore,
                ),
                maxLines: 1,
              ),
            ),
          ),
          Spacer(),
        ],
      ),
    )
android dart flutter flutter-layout
2021-11-23 20:16:17
1

Mejor respuesta

1

Si he entendido bien, quieres alinea a la derecha el texto, no el centro de ellos.

Para lograr esto, considere el uso de una sola Spacer() entre el icono y el texto. El exterior de espaciado (margen y relleno) se puede hacer uso de Padding widget de lugar.

2021-11-24 00:29:45

En primer lugar, yo quería tener un comportamiento similar al espacio de manera uniforme propery de la Fila, yo quería el mismo espacio entre el borde izquierdo: icono, icono-texto, texto, borde derecho. No sé cómo lograr que a pesar de que, debido a que el texto cambia de tamaño tan pronto como cambiar el tamaño, por lo que el espaciador debe ser capaz de cambiar el tamaño en consecuencia. Decidí que era mejor apenas a la derecha alinear el texto cómo se sugirió, incluso si eso no es lo que yo quería, pero parece decente
iocomxda

@iocomxda, oh, si quería tener el mismo espacio en 3 espacios, puedes probar a poner 3 Spacer() los widgets para que. Pero los textos (que tienen diferente ancho) no se alinean con cada uno de los otros en la página (como tener $2666 y $0), para alinear derecha es el enfoque más común.
user1032613

Gracias por la amable explicación! No sabía alinear derecha era el enfoque más común.
iocomxda

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................