Saltar al contenido principal

Flutter Tip: Multiplicar en vez de dividir

· 2 min de lectura
Yayo Arellano
Software Engineer
Youtube video player

Youtube video player

Hay veces que queremos calcular el ancho o la altura de un widget y tomamos como referencia el espacio de pantalla disponible. Por ejemplo en el siguiente fragmento de código, la altura de cada Container es la mitad del tamaño de la pantalla o MediaQuery.of(context).size.height / 2.

Column(
children: [
Container(
color: Colors.blue,
height: MediaQuery.of(context).size.height / 2,
),
Container(
color: Colors.green,
height: MediaQuery.of(context).size.height / 2,
)
],
)

Como podemos ver cada container ocupa la mitad de la pantalla:

Multiplicar en vez de dividir

Pero si el fragmento de código MediaQuery.of(context).size.height / 2 lo cambiamos por una multiplicación MediaQuery.of(context).size.height * 0.5 vamos a obtener algunas ventajas:

  • Es más fácil decir "La altura del widget es el 50% del tamaño de la pantalla" (0.5).
  • En varios post en stackoverflow se habla de que multiplicar es una operación menos costosa que una división post 1, post 2, post 3.

Así que, el código después de reemplazarlo por la multiplicación quedara asi:

Column(
children: [
Container(
color: Colors.blue,
height: MediaQuery.of(context).size.height * 0.5,
),
Container(
color: Colors.green,
height: MediaQuery.of(context).size.height * 0.5,
)
],
)

¿Cómo quedaría el código si quiero que la altura del Container sea el 25% de la altura y el verde el 75% de la altura? Así:

Column(
children: [
Container(
color: Colors.blue,
height: MediaQuery.of(context).size.height * 0.25,
),
Container(
color: Colors.green,
height: MediaQuery.of(context).size.height * 0.75,
)
],
)

Ejemplo en tu navegador

Corre el código en DartPad y ve los resultados por ti mismo: