El widget Visibility ya no es enfocable por defecto cuando maintainState está habilitado
El widget Visibility por defecto ya no retiene implícitamente la capacidad de enfoque para su hijo cuando maintainState está habilitado.
Resumen
#Este cambio se introdujo para solucionar un problema
donde los hijos ocultos de un IndexedStack podían enfocarse con eventos de teclado
(ver issue)
debido al comportamiento predeterminado del widget Visibility subyacente.
Descripción del cambio
#El cambio principal es que el widget Visibility ya no es enfocable por defecto
cuando maintainState está habilitado.
Se debe establecer una nueva bandera, maintainFocusability, en true junto con maintainState
para que un widget oculto siga siendo enfocable.
Guía de migración
#Si tu aplicación tiene un widget Visibility que no establece maintainState en true,
entonces no se requieren cambios.
Si tu aplicación tiene un widget Visibility que establece maintainState en true
y dependías del comportamiento predeterminado anterior
que te permitía enfocar tu widget oculto,
necesitarás establecer maintainFocusability en true.
Código antes de la migración:
child: Visibility(
maintainState: true,
child: SomeWidget(),
)
Código después de la migración:
child: Visibility(
maintainState: true,
maintainFocusability: true,
child: SomeWidget(),
)
Timeline
#Introducido en la versión: 3.34.0-pre
En la versión estable: 3.35
Referencias
#Documentación de la API:
Issues relevantes:
PRs relevantes:
A menos que se indique lo contrario, la documentación de este sitio refleja Flutter 3.44.0. Página actualizada por última vez el 2026-05-05. Ver código fuente oreportar un problema.