SnackBar是用户操作后,显示提示信息的一个控件,类似Toast
,会自动隐藏。它还可以添加操作按钮,等等。SnackBar是通过Scaffold
的showSnackBar
方法来显示的。所以要显示一个SnackBar,要先拿到Scaffold。
当BuildContext在Scaffold之前时,调用Scaffold.of(context)会报错。这时可以通过Builder Widget来解决
参数详解
属性 | 说明 |
content | 内容 |
backgroundColor | 背景颜色 |
elevation | 阴影高度 |
shape | 形状 |
behavior | 位置 SnackBarBehavior.fixed // 固定在底部 behavior:SnackBarBehavior.floating,//显示在[底部导航栏]上方 |
action | 动作(通常放按钮) |
duration | 停留时间,如一秒:Duration(seconds: 1), |
animation | 显示/隐藏动画 |
代码示例
//定义一个SnackBar
final snackBar = new SnackBar(content: new Text('这是一个SnackBar!'));//显示SnackBar
Scaffold.of(context).showSnackBar(snackBar);
Builder 用法
Builder(builder: (BuildContext context) {return Center(child: InkWell(onTap: () {//定义final mySnackBar = SnackBar(content: Text('我是SnackBar'),backgroundColor: Colors.black26,duration: Duration(seconds: 1),behavior:SnackBarBehavior.floating,action: SnackBarAction(label: '我是scackbar按钮', onPressed: () {print('点击了snackbar按钮');}),);//显示Scaffold.of(context).showSnackBar(mySnackBar);},child: Padding(padding: EdgeInsets.all(10),child: Text('点 我'),),),);
}),
效果图
完整代码
查看完整代码