首先我们看下什么是SnackBar,如图:

SnackBar是用户操作后,显示提示信息的一个控件,类似Toast,会自动隐藏。它还可以添加操作按钮,等等。SnackBar是通过Scaffold的showSnackBar方法来显示的。所以要显示一个SnackBar,要先拿到Scaffold。
创建Scaffold
Scaffold(
appBar: AppBar(
title: ext('SnackBar Demo'),
),
body: SnackBarPage(),
);
显示SnackBar
首先创建一个SnackBar,再通过Scaffold的方法来显示。
final snackBar = SnackBar(content: Text('这是一个SnackBar!'));
Scaffold.of(context).showSnackBar(snackBar);
给SnackBar添加一个操作按钮
有时候,我们可能会想在显示的提示信息上添加一些操作。例如提示用户删除了一条消息,可以在提示信息上添加一个撤消的按钮,要达到这个效果,我们可以在SnackBar上添加一个操作按钮。
final snackBar = SnackBar(
context: Text('删除信息'),
action: SnackBarAction(
label: '撤消',
onPressed: () {
// do something to undo
}
),
);
注意事项
当BuildContext在Scaffold之前时,调用Scaffold.of(context)会报错。这时可以通过Builder Widget来解决,代码如下:
body: Builder(builder: (BuildContext context) {
return Center(
child: GestureDetector(
onTap: () {
final snackBar =
SnackBar(content: Text('这是一个SnackBar'));
Scaffold.of(context).showSnackBar(snackBar);
},
child: Text('显示SnackBar'),
),
);
})
本文详细介绍了Flutter中SnackBar的使用方法,包括基本显示、添加操作按钮及注意事项。SnackBar用于显示临时提示信息,可通过Scaffold的showSnackBar方法实现,适用于用户操作反馈等场景。

4505

被折叠的 条评论
为什么被折叠?



