Problem is, your snackBar has duration, within that duration if you navigate back to the screen, you'll see that old snackBar again.
Solution is add this method before Navigator:
Scaffold.of(context).removeCurrentSnackBar();
In your case, you're using scaffoldKey, so translate it as you need. But, be sure you are contacting with right Scaffold.
scaffoldKey.currentState.removeCurrentSnackBar();
Official link: https://api.flutter.dev/flutter/material/ScaffoldState/removeCurrentSnackBar.html
Edit: About calling Screen 1 Scaffold inside Screen 2 Scaffold:
Your screen has Scaffolds. Scaffolds have keys in your situation as I see.
Let's say Screen1 has screen1Key ScaffoldState key. Same for Screen2.
Inside Screen2 you must call
screen1Key.currentState.removeCurrentSnackBar();
full example: import 'package:flutter/material.dart'; void main() { runApp(MaterialApp( home: Screen1(), )); } GlobalKey<ScaffoldState> screen1Key = GlobalKey<ScaffoldState>(); GlobalKey<ScaffoldState> screen2Key = GlobalKey<ScaffoldState>(); class Screen1 extends StatefulWidget { @override _Screen1State createState() => _Screen1State(); } class _Screen1State extends State<Screen1> { @override Widget build(BuildContext context) { return Scaffold( key: screen1Key, body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: <Widget>[ RaisedButton( onPressed: () { screen1Key.currentState .showSnackBar(SnackBar(content: Text('Screen 1 SnackBar'))); }, child: Text('Show SnackBar'), ), RaisedButton( onPressed: () { Navigator.push(context, MaterialPageRoute(builder: (context) { return Screen2(); })); }, child: Text('Navigate forward'), ), ], ), ), ); } } class Screen2 extends StatefulWidget { @override _Screen2State createState() => _Screen2State(); } class _Screen2State extends State<Screen2> { @override Widget build(BuildContext context) { return Scaffold( key: screen2Key, body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: <Widget>[ RaisedButton( onPressed: () { screen2Key.currentState .showSnackBar(SnackBar(content: Text('Screen 2 SnackBar'))); }, child: Text('Show SnackBar'), ), RaisedButton( onPressed: () { screen1Key.currentState.removeCurrentSnackBar(); Navigator.pop(context); }, child: Text('Navigate Back'), ), ], ), ), ); } }
I hope I understand well your problem.