web-dev-qa-db-ja.com

SnackBarAction onPressedでFlutterスナックバーを閉じる

SnackBarSnackBarActionメソッドのonPressedを却下したい。 Navigator.of(context).pop();を試してみましたが、SnackBarが画面を閉じず、代わりに黒くなります。

ここにコードがあります:

 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

hideCurrentSnackBarメソッドを使用してみてください

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

詳細はこちら: https://docs.flutter.io/flutter/material/ScaffoldState/hideCurrentSnackBar.html

10
diegoveloper

あなたも使うことができます、

Scaffold.of(context).hideCurrentSnackBar();

contextを使用するときは注意してください。正しいコンテキストを使用してください。

8
Achintha Isuru

一度だけ表示されるスナックバーを置き換える場合は、

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

そしてまた、

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

そしてまた、

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