Amm*_*ang 6 dart snackbar flutter
我想放弃SnackBar上SnackBarAction的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();
},
),));
}
Run Code Online (Sandbox Code Playgroud)
Ach*_*uru 44
您还可以使用,
Scaffold.of(context).hideCurrentSnackBar();
Run Code Online (Sandbox Code Playgroud)
使用context时要小心,使用正确的上下文。
笔记
在新的 Flutter 版本中,此方法已被弃用。因此使用
ScaffoldMessenger.of(context).hideCurrentSnackBar();
Run Code Online (Sandbox Code Playgroud)
Riz*_*sar 10
ScaffoldMessenger.of(context).hideCurrentSnackBar();
尝试使用hideCurrentSnackBar方法
onPressed: () {
homeScaffoldKey.currentState.hideCurrentSnackBar();
},
Run Code Online (Sandbox Code Playgroud)
此处提供更多信息:https : //docs.flutter.io/flutter/material/ScaffoldState/hideCurrentSnackBar.html
小智 8
要清除以前的小吃栏并仅显示新的小吃栏,请使用removeCurrentSnackBar方法而不是hideCurrentSnackBar,因为它不会清除堆栈。所以代码将是
ScaffoldMessenger.of(context)
..removeCurrentSnackBar()
..showSnackBar(snackBar);
Run Code Online (Sandbox Code Playgroud)
如果你想替换只显示一次的小吃店,
final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();
final snackBar = SnackBar(content: Text("Hello, world"));
Run Code Online (Sandbox Code Playgroud)
并且,
@override
Widget build(BuildContext context) {
return Scaffold(
key: _scaffoldKey,
Run Code Online (Sandbox Code Playgroud)
并且,
onPressed: () {
_scaffoldKey.currentState.removeCurrentSnackBar();
_scaffoldKey.currentState.showSnackBar(snackBar);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1880 次 |
| 最近记录: |