Flujo de trabajo aplicado
debug mode
primario
condicional
+ verificar
stripes
Diagnóstico y correcciones por pantalla
El ListView de recetas diarias está como hijo directo de un Column sin altura acotada. Flutter intenta dar al ListView altura infinita → excepción. Regla: Constraints go down. Sizes go up. La Column no tiene límite para transmitir al ListView.
El TextField de búsqueda está dentro de un Row junto a un Icon. La Row no da anchura definida al TextField, que intenta calcularla en base a espacio infinito. Solución: envolver en Expanded para que ocupe el espacio restante de la Row.
La tarjeta de perfil muestra nombre del usuario + badge de nivel en una Row. Nombres largos como "María Fernández-Castillo" exceden el ancho disponible. El Text no tiene instrucción de flex → desborda con las rayas amarillas/negras características. Solución: Expanded en el Text del nombre.
En la pantalla de Planes, un Expanded fue colocado dentro de un Container (para añadir padding), en lugar de ser hijo directo de la Row/Column. Expanded es un ParentDataWidget que solo funciona como descendiente directo de un Flex widget. Solución: reestructurar para que el Expanded sea hijo directo del Row.
Resumen de impacto por pantalla
| # | Pantalla | Error Flutter | Severidad | Fix aplicado | Estado |
|---|---|---|---|---|---|
| 1 | Home | Vertical viewport unbounded height |
Crítico | Envolver ListView en Expanded |
✓ |
| 2 | Búsqueda | InputDecorator unbounded width |
Crítico | Envolver TextField en Expanded |
✓ |
| 3 | Perfil | RenderFlex overflowed 42px |
Alto | Expanded en Column + TextOverflow.ellipsis |
✓ |
| 4 | Planes | Incorrect use of ParentData |
Alto | Mover Expanded a hijo directo de Row |
✓ |