SnackBar con acción ya no se descarta automáticamente
Las SnackBars con un botón de acción ahora tienen como comportamiento predeterminado no descartarse automáticamente a menos que el usuario las descarte manualmente.
Resumen
#El comportamiento predeterminado de un SnackBar
con una acción ha cambiado.
Anteriormente, un SnackBar con una acción no se
descartaba automáticamente si talkback estaba activado.
Ahora, todos los widgets de SnackBar con una acción tienen por defecto
un estado no descartable hasta que el usuario interactúa con el botón de acción.
Contexto
#Un SnackBar con un botón de acción ahora se trata como
una notificación más persistente que requiere la interacción del usuario.
Este cambio mejora la accesibilidad y la experiencia del usuario al garantizar que
las notificaciones críticas permanezcan en la pantalla hasta que sean reconocidas.
Descripción del cambio
#Este cambio se alinea con la especificación de diseño de Material 3 para
el componente SnackBar:
- Comportamiento antiguo: Un
SnackBarcon un botón de acción se descartaba automáticamente después de una duración determinada, a menos que talkback estuviera activado. - Comportamiento nuevo: Un
SnackBarcon un botón de acción no se descartará automáticamente; permanece en pantalla hasta que el usuario lo descarte.
Para anular este comportamiento, se ha añadido una propiedad opcional persist
a SnackBar.
Cuando persist es true, el SnackBar no se descartará automáticamente y
permanecerá en pantalla hasta que el usuario lo descarte manualmente.
Cuando es false, el SnackBar se descarta automáticamente después de su duración estándar,
independientemente de la presencia de una acción.
Cuando es null, el SnackBar sigue el comportamiento predeterminado,
el cual no se descarta automáticamente si hay una acción presente.
Guía de migración
#Para restaurar el antiguo comportamiento de descarte automático para un SnackBar con una acción, establece
persist en false.
Código antes de la migración:
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: const Text('This is a snackbar with an action.'),
action: SnackBarAction(
label: 'Action',
onPressed: () {
// Perform some action
},
),
),
);
Código después de la migración:
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: const Text('This is a snackbar with an action.'),
persist: false, // Add this line to restore auto-dismiss behavior
action: SnackBarAction(
label: 'Action',
onPressed: () {
// Perform some action
},
),
),
);
Timeline
#Llegó en la versión: 3.37.0-0.0.pre En la versión estable: 3.38
Referencias
#Documentación de la API:
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.