Flutter — Widgets Opacity y AnimatedOpacity

2024-02-10T18:00:00-05:00 | 3 minutos de lectura | Actualizado en 2025-01-24T07:42:46-05:00

jaimetellezb
Flutter — Widgets Opacity y AnimatedOpacity

Tabla de Contenido

Introducción

En algunas ocasiones necesitamos ocultar un widget sin que desaparezca del árbol de widgets o simplemente hacer que su color sea un poco más opaco. Para estos casos Flutter nos brinda un widget Opacity y otro con su versión animada si así lo requerimos AnimatedOpacity.

Opacity

Este widget hace que su child sea transparente cuando el valor de su propiedad opacity es 0.0. Los posibles valores van desde 0.0 a 1.0. Pinta al child en un búfer intermedio. Este búfer tiene un fondo transparente.

propiedades

  • opacity es la propiedad que da el nivel de opacidad entre 0.0 y 1.0, siendo 0.0 totalmente transparente.
  • child es el widget hijo al cual se le aplicará la opacidad.

AnimatedOpacity

Para animar un widget Opacity se puede usar el widget AnimatedOpacity, el cual cambia automáticamente la opacidad del child durante un tiempo determinado.

propiedades

  • duration es la duración en unidad de tiempo, se apoya en la clase Duration la cual recibe como parámetro el tiempo que se tomará para animar la opacidad en el widget hijo.
  • opacity es la propiedad que da el nivel de opacidad entre 0.0 y 1.0, siendo 0.0 totalmente transparente.
  • curve es la forma que queremos usar para animar la opacidad mientras se ejecuta el tiempo de duración. Se apoya en clase Curve para esta animación.
  • child es el widget hijo al cual se le aplicará la opacidad.

Consideraciones de rendimiento

  • Si se requiere simplemente dejar una imagen transparente es recomendable usar una Imagen y poner el color transparente Color.fromRGBO(255, 0, 0, 0.5) que es mucho más eficiente que un Opacity.
  • Su uso no es tan eficiente para la aplicación ya que debe dibujar el child en un búfer intermedio.

Ejemplos

  • Tenemos tres widgets de Opacity. El primero y el tercero son un Opacity con un child que es un Container de diferente color que a su vez tienen un child Image. El segundo es un Opacity que tiene como child un Image.network directamente. Podemos ver diferentes usos.

demo

  • Para este otro ejemplo, tenemos un StatefulWidget, con un Container en el cual usamos la propiedad del color withOpacity para modificar su opacidad también junto con el child que es un Opacity que tiene como hijo un Image.network y lo cambiamos con un ElevatedButton.

Ejemplo 1

  • Para este último ejemplo es básicamente el mismo anterior, cambiando simplemente el widget Opacity por el AnimatedOpacity.

Ejemplo 2


Conclusión

En conclusión, tenemos en Opacity un widget muy útil para hacer desvanecidos del color de otro widget, siempre y cuando sea esto lo que se quiere. En caso de querer simplemente hacer algo transparente pero que siga ocupando un espacio entonces es recomendable usar el color transparente directamente.

¡Gracias por leer!

Referencias

© 2022 - 2025 jaimetellezb - Compartir guías y tutoriales de programación.

🌱 Powered by Hugo with theme Dream.

Sobre mí

alt

Ingeniero de software

Hola, bienvenidos a mi blog sobre guías y tutoriales de programación.

Aquí podrás encontrar guías y tutoriales sobre algunos temas de tecnología en general. La idea es poder ayudar a que ciertas cosas como configuraciones de nuevas herramientas sean más fáciles de abordar y utilizar. También pequeños proyectos donde se usen diferentes tecnologías como ejemplo.

Enlaces sociales