Mostrar una Snackbar

Para mostrar una SnackBar basta con obtener el Scaffold actual y usar el método showSnackBar() nativo de flutter, que recibe como parámetro un objeto de tipo SnackBar. El método se invoca sobre el Scaffold de la pantalla actual.
Si se dispone de un contexto el Scaffold se puede obtener mediante Scaffold.of(context), por ejemplo:

Scaffold.of(context).showSnackBar(...);

pero generalmente las Snack se muestran en lugares donde no hay contexto o es difícil obtenerlo, como dentro de un método, por eso suele usarse una key para identificar al Scaffold.

final scaffoldKey = GlobalKey<ScaffoldState>();

Esta key se le asigna al Scaffold en turno:

@override
Widget build(BuildContext context) {
    return Scaffold(
        key: scaffoldKey,
    );
}

y después puede utilizarse el siguiente método que preparé, que recibe esa key y el mensaje que se quiere mostrar.

void mostrarSnackbar(GlobalKey<ScaffoldState> scaffoldKey, String mensaje){

  final snackbar = SnackBar(
        content: Text(mensaje),
        duration: Duration(milliseconds: 1500),
    );
    scaffoldKey.currentState.showSnackBar(snackbar);
}

Por supuesto la SnackBar se puede personalizar mucho más, como agregarle acciones, un título, colores, la duración, etc. Todo mediante los argumentos de su constructor.

Comentarios