Flutter快餐栏在SnackBarAction onPressed上关闭

时间:2019-03-02 05:22:17

标签: dart flutter snackbar

我想用SnackBar的{​​{1}}方法关闭SnackBarAction。我尝试使用onPressed,但是Navigator.of(context).pop();并没有排除我的屏幕变黑。

这是代码:

SnackBar

7 个答案:

答案 0 :(得分:9)

ScaffoldMessenger.of(context).hideCurrentSnackBar();

答案 1 :(得分:3)

您也可以使用

Scaffold.of(context).hideCurrentSnackBar();

使用上下文时要小心,请使用正确的上下文。

答案 2 :(得分:2)

定义您的SnackBar

var snackBar = SnackBar(content: Text('Hello World'));

展示:

ScaffoldMessenger.of(context).showSnackBar(snackBar);

隐藏它:

ScaffoldMessenger.of(context).hideCurrentSnackBar();

要隐藏最后一个并显示一个新的:

ScaffoldMessenger.of(context) 
  ..hideCurrentSnackBar()
  ..showSnackBar(snackBar);

答案 3 :(得分:1)

尝试使用<div class="gallery-content"> <table class="table" id="gallery"> <tr> <td> <div> 1 </div> </td> <td> <div> 2 </div> </td> <td> <div> 3 </div> </td> </tr> <tr> <td> <div> 4 </div> </td> <td> <div> 5 </div> </td> <td> <div> 6 </div> </td> </tr> <tr> <td> <div> 7 </div> </td> <td> <div> 8 </div> </td> <td> <div> 9 </div> </td> </tr> </table> </div>方法

hideCurrentSnackBar

此处有更多信息:https://docs.flutter.io/flutter/material/ScaffoldState/hideCurrentSnackBar.html

答案 4 :(得分:0)

如果您要替换仅显示一次的小吃店,

  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);
     }

答案 5 :(得分:0)

Scaffold.of(context).hideCurrentSnackBar(); 上述方法以前使用过,但

ScaffoldMessenger.of(context).hideCurrentSnackBar(); 现在推荐这样做。

答案 6 :(得分:0)

您也可以在没有任何键的情况下显示和关闭这样的小吃店

ScaffoldMessenger.of(context).showSnackBar(
  SnackBar(
    content: Text('Hello from snackbar!'),
    action: SnackBarAction(
      label: 'Dissmiss',
      textColor: Colors.yellow,
      onPressed: () {
        ScaffoldMessenger.of(context).hideCurrentSnackBar();
      },
    ),
  ),
);