Skip to main content
Selector de imagen con bytes, Form, carga y limpieza. Categoría: Imágenes. Uso: Seleccionar y previsualizar una imagen de perfil, producto o documento. Importa el barrel público y Flutter Material. Código fuente.

Constructor

Esta firma corresponde al código fuente, incluyendo nulabilidad y defaults; las condiciones y el comportamiento se explican debajo.

Propiedades

“Requerido” significa que debes pasar el argumento, incluso cuando su tipo admite null. Los valores null de color suelen delegar al tema; consulta las notas para el rol efectivo.

Ejemplo

Este archivo define una función que devuelve el widget. Llámala desde build con tus datos/callbacks, y conserva el estado y los recursos en su dueño. No ejecuta callbacks ficticios.

Comportamiento y límites

  • Sin pickImage utiliza FilePicker.pickFile(type: FileType.image) y readAsBytes. onTap notifica la interacción y no sustituye ese selector.
  • pickImage puede devolver null para cancelar; se conserva la imagen anterior y no se llama onChanged por cancelación.
  • bytes tiene prioridad sobre imageProvider. El provider muestra una imagen existente, pero no convierte su contenido a bytes para el validator.
  • loading externo o una selección interna en curso bloquean nuevas pulsaciones y limpieza. El widget comprueba mounted tras await.
  • Limpiar entrega null y oculta el provider; actualizar bytes/provider desde fuera sincroniza el estado según didUpdateWidget.
  • No comprime, recorta, sube ni valida automáticamente el tamaño del archivo. onError cubre errores del proceso de selección, no todos los errores de decodificación/render de Image.
  • Form.reset restaura initialValue de bytes; _showImageProvider no tiene un reset específico. Si necesitas restaurar también el provider, define esa política desde la app.
  • Los mensajes de validación ocupan altura adicional. Una imagen existente por provider requiere una regla específica si el validator exige bytes no nulos.
Para ejemplos con estado y composición completos, consulta componentes reutilizables y formularios.