web-dev-qa-db-fra.com

Flutter snackbar ignorer sur SnackBarAction surPressed

Je souhaite ignorer SnackBar sur la méthode SnackBarAction de onPressed. J'ai essayé avec Navigator.of(context).pop(); mais SnackBar ne rejette pas mon écran en noir à la place.

Voici le code:

 void showInSnackBar(String value) {
homeScaffoldKey.currentState.showSnackBar(new SnackBar(content: new Text(value),
  action: SnackBarAction(
    label: 'Dissmiss',
    textColor: Colors.yellow,
    onPressed: () {
    //  Navigator.of(context).pop();
    },
  ),));
}
10
Ammy Kang

Essayez d'utiliser la méthode hideCurrentSnackBar

onPressed: () {
    homeScaffoldKey.currentState.hideCurrentSnackBar();
},

Plus d'informations ici: https://docs.flutter.io/flutter/material/ScaffoldState/hideCurrentSnackBar.html

10
diegoveloper

Vous pouvez aussi utiliser,

Scaffold.of(context).hideCurrentSnackBar();

Soyez prudent lorsque vous utilisez context, utilisez le bon contexte.

8
Achintha Isuru

Si vous souhaitez remplacer le snack-bar qui ne s'affiche qu'une seule fois,

  final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();
  final snackBar = SnackBar(content: Text("Hello, world"));

Et aussi,

@override
Widget build(BuildContext context) {
return Scaffold(
  key: _scaffoldKey,

Et aussi,

onPressed: () {
    _scaffoldKey.currentState.removeCurrentSnackBar();
    _scaffoldKey.currentState.showSnackBar(snackBar);
     }
1
Hussnain Haidar