我想用SnackBar
的{{1}}方法关闭SnackBarAction
。我尝试使用onPressed
,但是Navigator.of(context).pop();
并没有排除我的屏幕变黑。
这是代码:
SnackBar
答案 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();
},
),
),
);